17

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

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

请注意,我不是在谈论进程终止(这是不同的情况:如果一个进程被终止,则所有活动都将被终止,并且不会调用或不保证调用 onDestroy())。问题仅仅是关于在等待子活动结果时是否可以使用 onDestroy()。

4

1 回答 1

19

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

  1. A被重新创建。
  2. A提供结果。

换句话说,A 将在用户下次访问/需要它时重新创建,届时将传递任何未决结果(从 B 到 A)。

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

于 2012-04-25T16:06:51.530 回答