1

我无法弄清楚 onDestroy() 行为。我的问题是:是否有可能在不调用 onDestroy() 的情况下杀死一个活动而不杀死空洞应用程序?我的意思是,我是否会回到我的应用程序(回到启动器调用的活动以外的活动)并处于一个活动被杀死而没有调用它的 onDestroy() 的情况?

我需要知道,如果我从后台回到某个活动,那么如果没有 onDestroy,我的一些活动就不会被杀死。

谢谢!

4

3 回答 3

1

不,我不这么认为,当您的应用程序因内存不足而被终止时,您的整个应用程序进程将被终止,因此在这种情况下,onDestroy() 可能不会被调用,并且您的应用程序将再次回到您的启动器 Activity 上,除非您可以保存在您的应用程序被杀死之前,您的应用程序状态处于onPause()状态。

于 2013-07-28T08:27:48.513 回答
0

是的,如果没有足够的内存可用于新启动的应用程序,Android 将杀死一个最不常用的活动。后退按钮也会触发 onDestroy()。最好的办法是保存您的应用程序状态。这是如何保存和恢复当前实例的类似问题的示例。

于 2013-07-28T08:24:50.837 回答
0

如 API 文档 Activity#onDestroy() 中所述:

注意:不要指望这个方法被称为保存数据的地方!

http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29

并且不要忘记调用 super.onDestroy()

于 2013-07-28T08:27:02.327 回答