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全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android退出应用程序探讨
退出方式 Android退出程序的两种方式:killProcess()和System.exit() killProcess() 调用 android.os.Process.killProcess(android.os.Process.myPid()) 可以……
<<上一篇
下一篇>>
文章目录
关闭
目 录