onDestroy() while “waiting” for onActivityResult()

2022-09-02 21:52:13

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

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

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


答案 1

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

  1. 重新创建 A。
  2. A交付结果。

换句话说,A将在用户下次访问/需要时重新创建,此时将交付任何挂起的结果(从B到A)。

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


答案 2

推荐