Android退出应用程序探讨
退出方式
Android退出程序的两种方式:killProcess()
和System.exit()
killProcess()
调用
android.os.Process.killProcess(android.os.Process.myPid())
可以杀死当前应用活动的进程,这一操作将会把所有该进程内的资源(包括线程全部清理掉)。当然,由于ActivityManager时刻监听着进程,一旦发现进程被非正常Kill,它将会试图去重启这个进程。这就是为什么,有时候当我们试图这样去结束掉应用时,发现它又自动重新启动的原因,下文将会降到应用自杀重启的条件。
System.exit()
System.exit()
其实是Java中结束进程的方法,调用它将关闭当前的JVM虚拟机。
System.exit(0)
和System.exit(1)
的区别:
System.exit(0)
表示是正常退出System.exit(1)
表示是非正常退出,通常这种退出方式应该放在catch块中
APP自杀重启
无论是killProcess()
方式,还是System.exit()
方式,在主线程中杀死应用均会尝试重启应用,在子线程中杀死应用则不会重启应用。
主UI线程执行
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
可见APP不断自杀重启,进程号也在改变
04-17 16:15:06.087 1115-1115/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:06.943 1424-1424/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:07.772 1677-1677/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:08.628 1952-1952/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:09.431 2167-2167/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:10.245 2357-2357/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:11.052 2566-2566/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:12.044 2758-2758/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:12.845 2960-2960/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:13.844 3148-3148/cn.appblog.killapp I/yezhou: AppApplication.onCreate
04-17 16:15:14.681 3316-3316/cn.appblog.killapp I/yezhou: AppApplication.onCreate
子线程执行
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
}, 2000);
}
可见APP不再启动
04-17 16:17:16.398 5087-5087/com.lianlianpay.webview I/yezhou: AppApplication.onCreate
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/26/exploration-of-android-exit-application-program/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论