Android inter-Activity生命周期

Che*_*rra 2 lifecycle android android-activity

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

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

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

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

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

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

Regads

Sha*_*mar 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现在位于任务的顶部并获得焦点.

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

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

在此输入图像描述