onDestroy()while" waiting" for onActivityResult()

时间:2012-04-25 15:59:55

标签: java android ondestroy

我有一个有两个活动的应用程序:“A”和“B”。

“A”使用startActivityForResult()产生“B”,即它等待“B”。现在,假设“B”在前景中。 Android系统可以破坏活动“A”而不会破坏“B”吗? (如果是,那么当“B”完成时,例如在用户输入之后,必须重新创建活动“A”并由Android系统再次放到前台,我需要记住并将“A”恢复到其早期的UI状态。 )

请注意,我不是在讨论进程 kill (这是不同的情况:如果进程被终止,所有活动都被终止,并且onDestroy()未被调用或无法保证被调用) 。问题仅仅是在等待子活动的结果时是否可以使用onDestroy()。

1 个答案:

答案 0 :(得分:15)

如果活动A在B完成时被杀死,则可以保证

  1. 重新创建。
  2. 传递结果。
  3. 换句话说,A将在用户下次访问/需要时重新创建,此时将传递任何待处理结果(从B到A)。

    另请注意,这就是为什么必须通过带有整数请求代码的单个Activity回调而不是任意回调对象返回结果。