我有一个包含两个活动(Activity)的应用程序:“A”和“B”。
在“A”中,使用startActivityForResult()
启动“B”即等待“B”。 现在,假设“B”在前台。 Android系统是否可以销毁活动“A”而不销毁“B”?(如果是,则在“B”完成后,例如用户输入之后,Android系统必须重新创建并将活动“A”置于前台,并且我需要记住并恢复“A”的早期UI状态。)
请注意,我不是在谈论进程的杀掉(这是另一种情况:如果进程被杀死,则所有活动都将被销毁,并且onDestroy()不会被调用或无法保证调用)。 这个问题只是关于在等待子活动的结果时是否可能发生onDestroy()。
startActivityForResult
无关。您可以确保结果将从B传递到A(无论A是否被销毁),但这并不意味着Activity的状态已经被保存。如果onDestroy
已被调用,则在其在onRestoreInstanceState
(或onResume
)中重新创建时可能需要恢复其状态,就像您遇到的任何其他Activity一样。 - Alex Lockwood