Android System.exit(code) and android.os.Process.killProcess(pid)或者发生RunTimeException 导致应用重启

本文探讨了在Android中使用System.exit()和Process.killProcess(),以及遇到RunTimeException时可能导致应用重启的问题。通过测试发现,这些操作会结束Dalvik VM实例,但是否重启应用取决于应用Task的状态。如果应用的所有Task数量大于1,应用会重启,并返回最后一个Task的栈顶第二个Activity。文章提供了多个示例来说明何时重启以及返回哪个界面。
摘要由CSDN通过智能技术生成

关于 System.exit(code) and android.os.Process.killProcess(pid) 或者发生RunTimeException导致应用重启 的问题,由于没有找到正式官方的文档说明,所以本人通过代码进行了一系列测试发现了某些规律


有不对的请知晓者告知。


首先在android中一个进程对应一个dalvik vm 实例,一个应用可以有一到多个进程也就是对应一到多个dalvik vm instance。一个应用可以有一到多个Task,每个Task 里面可以有一到多个TaskRecord。每个TaskRecord 对应了一个Activity。


OK,再来看一下api 文档时如何解释这两个方法的:


System.exit(code) 

Causes the VM to stop running and the program to exit with the given exit status. If runFinalizersOnExit(boolean) has been previously invoked with a true argument, then all objects will be properly garbage-collected and finalized first.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮克桃在写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值