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

如果通过以下步骤强制停止应用程序设置 – >应用程序 – >管理应用程序 – > – >强制停止,Android是否会调用活动或应用程序的onDestroy? (如果没有,有没有办法知道应用程序是否因用户触发的强制停止而死亡)。

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

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

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

一个更广泛的答案……

在这种情况下似乎没有调用onDestroy() 。 我在调用super.onDestroy之前尝试让它干嘛我测试了这个,但Toast消息从未出现过。 (根据这篇文章 , onDestroy()实际上是不可靠的,并且不会经常被调用,如果有的话,在电话上,而它可能在模拟器上被调用 – 所以要注意这一点)。 而是killProcess() ,我们无法拦截它。

另外,根据这篇文章中接受的答案,看来在用户控制的力停止后我们甚至无法捕捉和执行任务。

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

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