Android inter-Activity生命周期

时间:2013-07-12 03:48:02

标签: android android-activity lifecycle

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

  • 的onCreate()
  • 在onStart()
  • 的onResume()
  • 的onPause()
  • 的onStop()
  • 的onDestroy()

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

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

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

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

注册

1 个答案:

答案 0 :(得分:5)

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

enter image description here

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

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

活动按照打开的顺序存储在任务中(并添加到任务中)。它们未在任务内以任何方式排序或排序。任务中的活动集也称为后台堆栈。我会称之为 - stack。

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

enter image description here