Activity生命周期执行顺序

1、B Activity 不是透明的

1、第一个 A Activity 执行的生命周期方法:
image.png
  • 依次执行的生命周期方法:onCreate --- onStart — onResume
2、点击button 跳转到 B Activity 执行生命周期方法:
image.png
  • 先会执行 A 的生命周期方法: onPause
  • 再去执行 B 的生命周期方法: onCreate --- onStart --- onResume
  • 最后执行 A 的生命周期方法: onStop
3、在B Activity 中点击 返回键,执行的生命周期方法:
image.png
  • 先会执行 B 的生命周期方法:onPause
  • 再去执行 A 的生命周期方法:onRestart --- onStart --- onResume
  • 最后执行 B 的生命周期方法:onStop --- onDestroy
4、在A Activity 界面点击 Home键,执行的生命周期方法:
image.png
  • 执行 A 的生命周期方法: onResume --- onStop
5、从新进入到 App中,A 重新可见,执行的生命周期方法 :
image.png
  • 执行 A 的生命周期方法: onRestart --- onStart --- onResume

2、B Activity 是透明的

1、第一个 A Activity 执行的生命周期方法:
image.png
  • 依次执行的生命周期方法:onCreate --- onStart — onResume
2、点击button 跳转到 B Activity 执行生命周期方法:
image.png
  • 先会执行 A 的生命周期方法: onPause
  • 再去执行 B 的生命周期方法: onCreate --- onStart --- onResume
  • 因为 B 是透明的,所以不会执行 A 的 onStop
3、在B Activity 中点击 返回键,执行的生命周期方法:
image.png
  • 先会执行 B 的生命周期方法:onPause
  • 再去执行 A 的生命周期方法:onResume
  • 最后执行 B 的生命周期方法:onStop — onDestroy
4、在A Activity 界面点击 Home键,执行的生命周期方法:
image.png
  • 执行 A 的生命周期方法: onResume --- onStop
5、从新进入到 App中,A 重新可见,执行的生命周期方法 :
image.png
  • 执行 A 的生命周期方法: onRestart --- onStart --- onResume

总结:

  • 1、(前提 \color{red}{B不透明})A启动B,A的生命周期方法 onResume和onStop 是分开执行的,当B初始化完成之后,A的onStop再执行。
  • 2、(前提\color{red}{B透明} )A启动B,A的onStop不会执行
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容