1.Activity生命周期简介
(1)onCreate
此时Activity正在创建
并且执行一些初始化工作,如setContentView界面资源,初始化数据等等
Bundle参数为Activity上次被异常情况下销毁而保存的状态信息
(2)onStart
此时Activity正在启动,但前台不可见,无法和用户交互
(3)onResume
此时Activity获得焦点,在前台可见并且可以和用户交互
(4)onPause
此时Activity正在停止
可以做持久层的数据存储、停止动画等操作
如果启动一个新的Activity,旧的Activity的onPause方法会先执行,然后才是新的Activity的生命周期方法调用
(5)onStop
此时Activity即将停止
可以做相对重量级的回收工作,如释放网络连接、注销广播等操作
需要注意的是,如果新启动的Activity是透明的或者没有完全覆盖旧Activity,旧的Activity都不会执行onStop
(6)onDestory
此时Activity即将销毁
可以做回收工作和资源释放等操作
(7)onRestart
此时Activity重新启动,Activity由后台切换到前台,由不可见到可见。
可以分类去理解这些生命周期,这些生命周期可以分为3组
第一组:创建、销毁
onCreate、onDestory
第二组:是否可见
onStart、onStop
第三组:是否可交互
onResume、onPause
2.Activity生命周期的切换过程
(1)启动一个Activity
onCreate -> onStart -> onRseume
(2)打开一个新的Activity
旧Activity onPause -> 新Activity onCreate -> 新Activity onStart -> 新Activity onResume ->旧Activity onStop(是否执行取决于旧Activity是否被完全覆盖)
感谢读到这里的小伙伴,下面的情况可以先自己分析一下,然后在一起讨论
(3)返回到旧的Activity
(4)Activity1上弹出对话框Activity2
(5)关闭屏幕/按Home键
(6)点亮屏幕/回到前台
(7)关闭对话框Activity2
(8)销毁Activity1
------------------------------------------------------------------------------------
(3)新Activity onPause -> 旧Activity onRestart-> 旧Activity onStart -> 旧Activity ->onResume ->新Activity onStop -> 新Activity onDestory
(4)Activity1 onPause -> Activity2 onCreate