Android强制停止回调应用程序?

时间:2012-06-22 17:05:44

标签: java android

如果按照以下步骤强制停止应用设置 - >应用程序 - >管理应用程序 - > - >强制停止,android是否调用了Activity或应用程序的onDestroy? (如果没有,有没有办法知道应用程序是否因用户触发的强制停止而死亡)。

3 个答案:

答案 0 :(得分:8)

强制停止应用会终止整个过程(即使用Process.killProcess(int pid))。与应用程序关联的所有资源都将被内核删除并释放。所以不,你无法拦截这一行动。

当您在市场上发布应用程序时,开发者控制台将为您提供有关强制关闭,崩溃等的统计信息(如果这就是您要求的原因)。

答案 1 :(得分:3)

简而言之,不,onDestroy()没有被调用,你不能这样做。 Android不支持它。

更广泛的答案......

在这种情况下似乎没有调用

onDestroy()。我在调用super.onDestroy之前尝试让它Toast来测试这个,但Toast消息从未出现过。 (并且根据this postonDestroy()实际上是不可靠的,并且不会经常被调用,如果有的话,在电话上,而它可能在模拟器上调用 - 所以要注意这一点)。而是调用killProcess(),我们无法拦截。

此外,根据this post中接受的答案,看来我们甚至无法在用户控制的力量停止后捕捉并执行任务。

答案 2 :(得分:0)

没有。这实际上是不可能的。我没有看过有问题的Android代码,但我认为“强制停止”只是在你的应用的进程ID上调用kill。因此,你可以拦截的唯一方法是,如果你能捕获信号,我认为Android不允许这样做。

如果你扎根了,你可能会这样做,但不能以任何标准的方式。