我试图准确研究何时为某项活动调用onDestroy方法,但我已经阅读了一些令人困惑和冲突的信息。一般来说,我的问题是:在什么情况下onDestroy方法实际上调用了一个活动?更具体地说,如果我有两个活动,即活动A和活动B,如果活动A正在运行并且我创建了一个意图并切换到活动B,那么活动A是仅停止还是被销毁?
答案 0 :(得分:7)
如官方documentation中所述:
onDestroy()
您的活动被销毁之前收到的最后一个电话。这可能是因为活动正在完成(有人在其上调用finish(),或者因为系统暂时销毁此活动实例以节省空间。您可以使用isFinishing()方法区分这两种情况。
在您的示例中,活动A已停止,可能会被系统销毁
<小时/> 注意上面的每个documentation
链接:
...不要指望[onDestroy()
]被称为保存数据的地方...... [请参阅]onPause()
或onSaveInstanceState(Bundle)
。
答案 1 :(得分:-5)
onDestroy()
:
onStop()
:
因此,在您的示例中,当用户启动活动B时,活动A调用onStop()
。
修改强>:
根据文档,并不总是调用onDestroy()
方法。始终使用Honeycomb调用onStop()
,因此在活动停止之前移动您明确需要执行的代码。
从Honeycomb开始,应用程序在返回onStop()之前不处于killable状态。 https://developer.android.com/reference/android/app/Activity#ActivityLifecycle
希望这有帮助:D