1.KillProcess:
在android中我们如果想要程序的进程结束可以这样写:
android.os.Process.killProcess(android.os.Process.myPid());
这样就可以从操作系统中结束掉当前程序的进程。
注意:android中所有的activity都在主进程中,在Androidmanifest.xml中可以设置成启动不同进程,Service不是一个单独的进程也不是一个线程。当你Kill掉当前程序的进程时也就是说整个程序的所有线程都会结束,Service也会停止,整个程序完全退出。
2.System.exit:
当我们在写java程序时肯定用到过System.exit(0),它的意思是退出JVM(java虚拟机),在android中一样可以用,我们可以想像一下虚拟机都退出了当然执行System.exit的程序会完全退出,内存被释放。
注意:在android手机中查看当前正在运行的进程时可以发现还可以查看"后台缓存的进程",你会发现很多退出了的程序还在后台缓存的进程中,如果不要让程序在后台缓存那么就可以用System.exit(0);来退出程序了,可以清除后台缓存的本进程。
System.exit(0),System.exit(1)的区别:
参数0和1代表退出的状态,0表示正常退出,1表示异常退出(只要是非0的都为异常退出),即使不传0来执行也可以退出,该参数只是通知操作系统该程序是否是正常退出。
3.finishAffinity()和finish();
finishAffinity ()
调用该方法是为了结束当前的activity和所有不当前activity有相同任务关系的所有父类activities。如果你重写了默认的行为例如onNavigateUp(),你应该在你创建一个基亍向上导航合成的回栈使用该方法
网友评论