当系统杀死它时,活动会运行onDestroy吗?

时间:2013-08-05 05:32:09

标签: android lifecycle ondestroy

我想知道当系统杀死时,活动会运行方法“onDestroy”吗?

例如,当“活动A”的状态为onStop时(用户可以直接按Home键), 同时,系统发现内存不够,所以系统必须杀死一些后台进程才能保持前台活动的生效,比如系统杀死活动A.

在这种情况下,活动A会运行方法“onDestroy”吗?

3 个答案:

答案 0 :(得分:2)

这完全取决于当时的系统状况。文档清楚地说明了onDestroy()

  

在某些情况下,系统会简单地杀死活动   托管过程中没有调用此方法(或任何其他方法),所以   它不应该被用来做那些意图留下来的东西   过程消失后。

请参阅Here

答案 1 :(得分:1)

来自developer.android.com:

When your activity receives a call to the onStop() method, it's no longer visible and should release almost all resources that aren't needed while the user is not using it. Once your activity is stopped, the system might destroy the instance if it needs to recover system memory. In extreme cases, the system might simply kill your app process without calling the activity's final onDestroy() callback, so it's important you use onStop() to release resources that might leak memory.

因此,android通常会在你的活动被杀之前调用它的onDestroy(),但不能保证。

链接:http://developer.android.com/training/basics/activity-lifecycle/stopping.html

答案 2 :(得分:0)

取决于,当系统杀死一个应用程序时,它是由它直接杀死的关联PID。由于Android只是Linux,它发送 SIG9 (9号码信号为“kill”)/ kill(应用程序的PID)来杀死应用程序而不调用它的回调方法。