android 退出程序关闭死循环线程的一种方法(开源中国客户端下载APK疑问总结)...

本文探讨了Android应用如何实现彻底退出的问题,特别是针对服务中运行的死循环线程的处理方式。作者通过实验验证了关闭所有组件后再结束进程的方法能够确保应用完全退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android中往往退出程序时会调用以下方法,那么这个方法一定有效吗?在什么情况下没有用呢?

1 关闭掉所有界面

2干掉当前进程 android.os.Process.killProcess(android.os.Process.myPid());

3结束JVM System.exit(0);

       实际遇到了一个问题,开了一个服务,在服务中开了一个死循环线程做某个业务,那么退出程序时,如何关掉这个死循环线程呢(一般情况下,会设置标志位来控制线程的结束)?

       用了上述三个方法后,发现线程还一直在跑,明明杀了进程,结束了虚拟机了,既然进程都被干掉了,那么为什么进程所属的线程还在跑呢?

       2和3的确能杀死进程,但是貌似android系统自身的机制,如 界面A  启动了界面B,A没有finish.然后再B中调用finish关掉B,然后调用2和3 方法,发现关闭是无效的,进程又起来了,估计android 会认为是一种意外的关闭。因此,我尝试了 先finish掉所有的界面,然后finish掉开启的服务,然后再调用2和3的方法,结果证明 这个死循环的线程自动结束掉。

       结论,如果你有这么一个应用,彻底退出程序的话,那么应首先关掉所有的android四大组件,然后调用2和3的方法,即使开启的死循环线程也会被清理掉。这样就无须在设置标志位了,否则使用2和3的方法是无效的。


转载于:https://my.oschina.net/jixin/blog/515858

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值