2

根据Android docs,活动生命周期如下:

  • onCreate()
  • 开始()
  • onResume()
  • 暂停()
  • 停止()
  • onDestroy()

问题是,假设我有两个活动(A 和 B)并且它们没有被异常杀死(内存不足等):

当一个进入后台而另一个被恢复/创建时,执行顺序如何?

  • ...
  • A.onPause()
  • B.onCreate()
  • A.onStop() -- B.onStart() 同时
  • B.onResume()
  • ...

这种保证适用于任何特定订单吗?在每个 Android 版本中?

Regads

4

1 回答 1

5

按照图表,您将了解当一个活动进入后台而其他活动进入前台时会发生什么。

在此处输入图像描述

在第 2 步中 MainActivity 从屏幕上消失了,但留在内存中并没有被销毁。但是在第 3 步中,ActivityTwo 在它从屏幕上消失后就被销毁了。并在最后的第 4 步中 MainActivity 被销毁。

这是 Activity_A 调用 Activity_B 时的 bcos,Activity_B 被放在 Task 的顶部并获得焦点。Activity_A 保留在 Task 中,但处于 Stopped 状态(不可见且未聚焦)。此后,当用户在打开 Activity_B 时单击返回按钮时,Activity_B 将从任务中删除并销毁。Activity_A 现在位于 Task 的顶部并获得焦点。

活动按照打开(并添加到任务)的相同顺序存储在任务中。它们在任务中没有以任何方式排序或排序。任务中的一组活动也称为回栈。我将称之为 - 堆栈。

该图(来自官方网站)演示了一个示例:

在此处输入图像描述

于 2013-07-12T05:44:43.287 回答