android退出app的方法,Android 实现彻底退出自己APP 并杀掉所有相关的进程[通俗易懂]

android退出app的方法,Android 实现彻底退出自己APP 并杀掉所有相关的进程[通俗易懂]彻底杀掉App相关进程的代码publicvoidkillAppProcess(){//注意:不能先杀掉主进程,否则逻辑代码无法继续执行,需先杀掉相关进程最后杀掉主进程ActivityManagermActivityManager=(ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVIC…

大家好,又见面了,我是你们的朋友全栈君。

彻底杀掉 App 相关进程的代码

public void killAppProcess()

{

//注意:不能先杀掉主进程,否则逻辑代码无法继续执行,需先杀掉相关进程最后杀掉主进程

ActivityManager mActivityManager = (ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVICE);

List 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 并杀掉所有相关的进程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160774.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 索引类型以及使用场景[通俗易懂]

    mysql 索引类型以及使用场景[通俗易懂] 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了B…

    2022年6月7日
    39
  • Django(36)Django中间件详解「建议收藏」

    Django(36)Django中间件详解「建议收藏」什么是Django中间件中间件(Middleware)是一个用来处理Django的请求(Request)和响应(Response)的框架级别的钩子,它是一个轻量、低级别的插件系统,用于在全局范围内改

    2022年7月30日
    5
  • 语音信号处理分类

    语音信号处理分类人与人之间的通信:语音压缩与编码压缩语音信号的传输带宽或者降低电话信道的传输码率解释:比特率=位深X采样率X信道个数,比特率越高,还原度越高,速度越慢。所以降低编码比特率,可以节省频率资源。第一类人与机器之间的通信:语音合成机器讲话,人接听文语转换(TTS)系统,主要关注可理解度,自然度,可懂度,逼真度(情感语音合成)第二类人与机器之间的通信:语音识别人讲话,机器接…

    2022年5月26日
    42
  • [转]深邃之思想,纯粹之灵魂——我所了解的柳智宇学长

    [转]深邃之思想,纯粹之灵魂——我所了解的柳智宇学长https://zhuanlan.zhihu.com/p/32340797柳智宇学长文集前言部分深邃之思想,纯粹之灵魂——我所了解的柳智宇学长——2017年12月25日中国.湖北.武汉.华中科技大学【陆秋宇】正文部分读到自己高二写的这篇文章——2005年中国.湖北.武汉.华中师大一附中远慰风雨夕——2006年7月斯洛文尼亚.卢布尔雅那.第47届IMO前夜我在大学的成长历程…

    2022年4月30日
    50
  • lspci安装_linux下查看pci设备详细信息

    lspci安装_linux下查看pci设备详细信息lspci命令可以列出所有的PCI设备,比如主板,显卡和网卡等,也会把USB接口设备列出来,用最小化安装centos7,bash里默认不带lspci命令,需要手动安装:yum-yinstallpciutils 转载于:https://blog.51cto.com/229470383/1782898…

    2025年10月13日
    7
  • finemolds模型_yolo模型训练

    finemolds模型_yolo模型训练在已有模型上finetune自己的数据训练一个模型1、准备训练数据和测试数据2、制作标签3、数据转换,将图片转为LMDB格式前三步的过程和如何利用自己的数据训练一个分类网络是一样的,参考处理即可。4、修改网络模型文件复制/caffe-root/models/finetune_flickr_style文件夹下面的deploy.prototxt…

    2025年6月8日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号