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

Java Android强制停止回调应用程序?,java,android,Java,Android,如果通过以下步骤强制停止应用程序设置->应用程序->管理应用程序->-->强制停止,android会调用活动或应用程序的onDestroy吗?(如果不是,是否有办法知道应用程序是否由于用户触发的强制停止而死亡) 简而言之,不,ondestory()不被调用,您不能这样做。Android不支持它 一个更广泛的答案 onDestroy()在此场景中似乎未被调用。在调用super.onDestroy之前,我尝试让它Toastme来测试这一点,但是Toast消息从未出现。(并且根据,onDestroy(

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

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

一个更广泛的答案

onDestroy()
在此场景中似乎未被调用。在调用super.onDestroy之前,我尝试让它
Toast
me来测试这一点,但是
Toast
消息从未出现。(并且根据,onDestroy()确实不可靠,即使在电话上也不会经常被调用,而它可能在模拟器上被调用,所以要注意这一点)。相反,调用了
killProcess()
,我们无法拦截它


此外,根据中的公认答案,似乎在用户控制的强制停止后,我们甚至无法捕获和执行任务。

不。这是不可能的。我还没有看过讨论中的Android代码,但我可以想象“强制停止”只是在应用程序的进程ID上调用
kill
。所以你能截获的唯一方法就是捕捉信号,我认为Android不允许这样做


如果你是根用户,你可能会这样做,但不是以任何标准方式。强制停止应用程序将终止整个过程(即使用)。内核将删除并释放与应用程序关联的所有资源。所以不,你不可能拦截这个动作


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

与大多数情况一样,无法保证会调用
onDestroy()
。抱歉,我不是说您错了。。。只是想概括一下答案(“在大多数情况下”)。希望你不介意。:)一点也不!没必要道歉。换言之,最好重新声明,这样更容易理解,同时也表明用户不应该依赖onDestroy()这一事实的重要性。在我看来,处理信号的能力将是一个相当大的安全缺陷p但应用程序保护又如何呢?他们是否使用安全漏洞来成为root用户?因为如果你强制停止应用程序,它会再次启动,无论你如何杀死它,它都会再次启动。