Android 实现彻底退出自己APP 并杀掉所有相关的进程
彻底杀掉 App 相关进程的代码
public void killAppProcess() { //注意:不能先杀掉主进程,否则逻辑代码无法继续执行,需先杀掉相关进程最后杀掉主进程 ActivityManager mActivityManager = (ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> mList = mActivityManager.getRunningAppProcesses(); for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : mList) { if (runningAppProcessInfo.pid != android.os.Process.myPid()) { android.os.Process.killProcess(runningAppProcessInfo.pid); } } android.os.Process.killProcess(android.os.Process.myPid()); System.exit(0); }
需要注意的坑
1. KillProcess()
android.os.Process.killProcess(android.os.Process.myPid())
可以杀死当前应用活动的进程,这一操作将会把所有该进程内的资源(包括线程全部清理掉)。当然,由于 ActivityManager 时刻监听着进程,一旦发现进程被非正常 Kill,它将会试图去重启这个进程。
这就是为什么,有时候当我们试图这样去结束掉应用时,发现 app 会自动重新启动的原因.
2. System.exit()
System.exit() 是 Java 中结束进程的方法,调用它将关闭当前的 JVM 虚拟机。
//表示是正常退出;
System.exit(0);
//表示是非正常退出,通常这种退出方式应该放在catch块中
System.exit(1);
3. App crash 后重启
上面链接中的文章写得很好很全面,参考即可
以上这篇Android 实现彻底退出自己APP 并杀掉所有相关的进程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android OpenGL ES 实现抖音传送带特效(原理解析)
这篇文章主要介绍了Android OpenGL ES 实现抖音传送带特效,抖音传送带特效推出已经很长一段时间了,前面也实现了下,最近把它整理出来了,如果你有仔细观测传送带特效,就会发现它的实现原理其实很简单,需要的朋友可以参考下2022-07-07android-获取网络时间、获取特定时区时间、时间同步的方法
本篇文章主要介绍了android-获取网络时间、获取特定时区时间、时间同步,小编觉得不错,现在就分享给大家,有兴趣的可以了解一下。2016-12-12Flutter加载图片流程之ImageProvider源码示例解析
这篇文章主要为大家介绍了Flutter加载图片流程之ImageProvider源码示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-04-04Android OkHttp库简单使用和封装教程助你快速掌握网络请求技能
OkHttp是一个高效的HTTP客户端库,适用于Android和Java应用程序。它支持HTTP/2和SPDY协议,提供了同步和异步请求API、请求和响应拦截器、连接池和多路复用器、缓存支持、GZIP和DEFLATE压缩等功能,可以大大提高网络请求的性能和可扩展性2023-04-04
最新评论