0

Android 文档提供了对Tasks 和 Back Stack的看似详尽的描述,但我找不到以下问题的答案:当他们的任务(之前被系统杀死)大约时,活动以什么顺序恢复(重新创建)再次成为前台。

例如,如果一个任务有活动 A -> B -> C 并且在后台被杀死,那么当用户切换回它时,连续所有活动的顺序onCreateonRestoreInstanceState事件调用是什么?我们是否可以理所当然地认为 A 总是在 B 之前完全恢复,而 B 在 C 之前完全恢复?

问题来自 Google Play 的错误日志,这让我怀疑在调用子活动期间主要活动尚未恢复。

4

1 回答 1

0

作为基于一些测试的简短(自我)答案,我报告活动恢复的顺序是从堆栈的顶部到底部,即与创建活动的初始顺序相反。在问题示例的延续中,它将是 C -> B -> A。

最重要的是一次只恢复一个顶级活动,而不是整个堆栈(这会更直观和一致,恕我直言)。只有在用户关闭 top Activity,并且下一个 Activity 即将成为新的 Top Activity 后,该单个 Activity 才会恢复,依此类推。

对于每个活动,按照文档执行一系列onCreateonStart、 。onRestoreInstanceState

于 2012-12-22T21:30:12.223 回答