我无法弄清楚 onDestroy() 行为。我的问题是:是否有可能在不调用 onDestroy() 的情况下杀死一个活动而不杀死空洞应用程序?我的意思是,我是否会回到我的应用程序(回到启动器调用的活动以外的活动)并处于一个活动被杀死而没有调用它的 onDestroy() 的情况?
我需要知道,如果我从后台回到某个活动,那么如果没有 onDestroy,我的一些活动就不会被杀死。
谢谢!
我无法弄清楚 onDestroy() 行为。我的问题是:是否有可能在不调用 onDestroy() 的情况下杀死一个活动而不杀死空洞应用程序?我的意思是,我是否会回到我的应用程序(回到启动器调用的活动以外的活动)并处于一个活动被杀死而没有调用它的 onDestroy() 的情况?
我需要知道,如果我从后台回到某个活动,那么如果没有 onDestroy,我的一些活动就不会被杀死。
谢谢!
不,我不这么认为,当您的应用程序因内存不足而被终止时,您的整个应用程序进程将被终止,因此在这种情况下,onDestroy() 可能不会被调用,并且您的应用程序将再次回到您的启动器 Activity 上,除非您可以保存在您的应用程序被杀死之前,您的应用程序状态处于onPause()状态。
是的,如果没有足够的内存可用于新启动的应用程序,Android 将杀死一个最不常用的活动。后退按钮也会触发 onDestroy()。最好的办法是保存您的应用程序状态。这是如何保存和恢复当前实例的类似问题的示例。
如 API 文档 Activity#onDestroy() 中所述:
注意:不要指望这个方法被称为保存数据的地方!
http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29
并且不要忘记调用 super.onDestroy()