Android 生命周期反转
Android lifecycle inversion
遇到了一些比较迷惑的情况,所以想问一下背后的原理
场景
:我有两个活动 A 和 B。
A 是启动器 activity,A 启动 B activity。
我想完成 B activity 并重新开始 B。
我称之为混乱的情况从这里开始。
正常情况是我假设
- B-onPause
- A-onStart
- A-onResume
- B-onStop
- B-onDestroy
--> 启动 B
- A-onPause
- B-onCreate
- B-onStart
- B-onResume
- A-onStop
但是当我尽可能快地(用我的手指)模拟这个场景时,这个顺序并没有保留。
像这样
- B-onPause
- A-onStart
- A-onResume
- A-onPause
- B-onCreate
- B-onStart
- B-onResume
- A-onStop
- B-onStop
- B-onDestroy
我知道如果activityA启动ActivityB,下面的顺序是固定的(A-onPause -> B-onCreate -> B-onStart -> B-onResume)。
除了 resume 和 pause,还有一个生命周期回调是不确定的?
我可以在低规格 android 设备上模拟这个,但不能在普通的中高规格设备上模拟。
所以一行的问题是
: 完成再打开时 activity, onStop 和 on Destroy 可以在 onResume 回调后完成吗?
提前致谢,抱歉英语不好:)
onStop()
和 onDestroy()
基本上是“清理”操作,可以在 Activity
暂停后随时 执行。你绝对不能指望这些在任何特定时间被调用。
遇到了一些比较迷惑的情况,所以想问一下背后的原理
场景 :我有两个活动 A 和 B。 A 是启动器 activity,A 启动 B activity。 我想完成 B activity 并重新开始 B。 我称之为混乱的情况从这里开始。 正常情况是我假设
- B-onPause
- A-onStart
- A-onResume
- B-onStop
- B-onDestroy --> 启动 B
- A-onPause
- B-onCreate
- B-onStart
- B-onResume
- A-onStop
但是当我尽可能快地(用我的手指)模拟这个场景时,这个顺序并没有保留。 像这样
- B-onPause
- A-onStart
- A-onResume
- A-onPause
- B-onCreate
- B-onStart
- B-onResume
- A-onStop
- B-onStop
- B-onDestroy
我知道如果activityA启动ActivityB,下面的顺序是固定的(A-onPause -> B-onCreate -> B-onStart -> B-onResume)。 除了 resume 和 pause,还有一个生命周期回调是不确定的?
我可以在低规格 android 设备上模拟这个,但不能在普通的中高规格设备上模拟。
所以一行的问题是 : 完成再打开时 activity, onStop 和 on Destroy 可以在 onResume 回调后完成吗?
提前致谢,抱歉英语不好:)
onStop()
和 onDestroy()
基本上是“清理”操作,可以在 Activity
暂停后随时 执行。你绝对不能指望这些在任何特定时间被调用。