小记-A跳转B生命周期变化

209 阅读2分钟

1.背景

AActivity 中一个btn, 点击 btn跳转到 BActivity ,然后 BActivity 再返回,这之间生命周期的变化,AActivity BActivity 均为普通正常的。

2.点击跳转

我们可以看下日志的打印结果:

2020-11-22 22:00:03.682 25196-25196/xx I/qq: AActivity onPause.....
2020-11-22 22:00:03.713 25196-25196/xx I/qq: BActivity onCreate.....
2020-11-22 22:00:03.714 25196-25196/xx I/qq: BActivity onStart.....
2020-11-22 22:00:03.716 25196-25196/xx I/qq: BActivity onResume.....
2020-11-22 22:00:04.164 25196-25196/xx I/qq: AActivity onStop.....

对于打印结果不难理解,因为 BActivity 的进入,AActivity 需要暂停执行 onPause 等真正 BActivity 创建完成后,自身被遮盖住处于不可见的状态,自然要执行 onStop() 方法。此时可以思考一下:如果 BActivity是透明的,又会是怎样?

3. 点击返回

BActivity 返回到 AActivity 之间生命周期的变化,我们看下日志情况:

2020-11-22 22:12:41.426 25196-25196/qq I/qq: BActivity onPause.....
2020-11-22 22:12:41.433 25196-25196/qq I/qq: AActivity onStart.....
2020-11-22 22:12:41.434 25196-25196/qq I/qq: AActivity onResume.....
2020-11-22 22:12:41.751 25196-25196/qq I/qq: BActivity onStop.....
2020-11-22 22:12:41.751 25196-25196/qq I/qq: BActivity onDestroy.....

同样先执行 BActivityonPause() 方法, 因为 AActivity已经创建,返回执行 onStart() ,onResume() ,同时伴随着 BActivity 的不可见,及出栈操作,执行 onStop(),onDestroy() 方法。