写点什么

Activity 之间跳转时,生命周期的变化

用户头像
W🌥
关注
发布于: 4 小时前

两个 Activity 之间跳转时,各自的生命周期变化

【A → B】

当在 Activity A 里面激活 Activity B,A 会调用 onPause()方法,然后 B 调用 onCreate(),onStart(),onResume()。这个时候 B 覆盖了 A 的窗体,A 会调用 onStop()方法。

如果 B 是个透明的窗口,或者是对话框的样式,就不会调用 A 的 onStop()方法。

【A → B → A】

A 的启动模式为 Standard:由于 A 不在栈顶,在 Standard 启动模式下,A 还是会被重复创建,即依然调用 onCreate 方法


【A → B → B】B 的启动模式为 Standard

B 在 Standard 启动模式下,还是会被重复创建,即依然调用自身的 onCreate 方法


【A → B → B】B 为 singleTop 或 singleTask 启动模式

B 先 onPause,然后 onResume

【A → B → A】

A → B 的生命周期见第一条。B 点击返回,再次回到 A 时,B 调用 onPause 方法,A 被重启,调用 onRestart 方法,然后 onStart、onResume,B 被覆盖后,B 调用 onStop、onDestory。

拓展

涉及第三个 Activity 时的生命周期变化:

A(非透明)跳转到 B(透明),从 B 中再跳转到 C(非透明),三者的生命周期调用:

值得注意的点:C 覆盖住 A 和 B 后,先执行 A 的 onStop 方法,再执行 B 的。

那么从 C 按 back 键后,三者的生命周期:

可见也是先进行 A 的变化(由于 A 不在前台生存期,所以不会调用 onResume),在 A、B 都显示完成后,调用 C 的 onStop 和 onDestroy。

发布于: 4 小时前阅读数: 2
用户头像

W🌥

关注

还未添加个人签名 2021.08.04 加入

还未添加个人简介

评论

发布
暂无评论
Activity之间跳转时,生命周期的变化