Android 生命周期反转

Android lifecycle inversion

遇到了一些比较迷惑的情况,所以想问一下背后的原理

场景 :我有两个活动 A 和 B。 A 是启动器 activity,A 启动 B activity。 我想完成 B activity 并重新开始 B。 我称之为混乱的情况从这里开始。 正常情况是我假设

  1. B-onPause
  2. A-onStart
  3. A-onResume
  4. B-onStop
  5. B-onDestroy --> 启动 B
  6. A-onPause
  7. B-onCreate
  8. B-onStart
  9. B-onResume
  10. A-onStop

但是当我尽可能快地(用我的手指)模拟这个场景时,这个顺序并没有保留。 像这样

  1. B-onPause
  2. A-onStart
  3. A-onResume
  4. A-onPause
  5. B-onCreate
  6. B-onStart
  7. B-onResume
  8. A-onStop
  9. B-onStop
  10. B-onDestroy

我知道如果activityA启动ActivityB,下面的顺序是固定的(A-onPause -> B-onCreate -> B-onStart -> B-onResume)。 除了 resume 和 pause,还有一个生命周期回调是不确定的?

我可以在低规格 android 设备上模拟这个,但不能在普通的中高规格设备上模拟。

所以一行的问题是 : 完成再打开时 activity, onStop 和 on Destroy 可以在 onResume 回调后完成吗?

提前致谢,抱歉英语不好:)

onStop()onDestroy() 基本上是“清理”操作,可以在 Activity 暂停后随时 执行。你绝对不能指望这些在任何特定时间被调用。