Activity的生存期的七个回调方法:
- onCreat ()
在Activity第一次被创建时调用 - onStart ()
Activity在有不可见变为可见时调用 - onResume()
在Activity准备好与用户进行交互时调用 - onPause()
在系统准备启动或者恢复另一个Activity时现Activity调用 - onStop()
在Activity变为不可见时调用 - onDestroy()
在Activity销毁之前调用 - onRestart()
在Activity()由停止状态(不可见)重新变为运行状态(可见)之前调用
从第一个方法到最后一个方法称为完整生存期
从第二个方法到第五个方法之间称为可见生存期
从第三个方法到第四个方法称为前台生存期
为了更好的理解我们举一个例子:
三个Activity A ,B, C
设置可以从A打开B,C (B完全将A挡住 C没有完全挡住A)
那么首先进入A时
A将分别执行 onCreat() ,onStart() ,onResume() 方法。
再从A打开B
A将先执行onPause() 方法,
B执行onCreat() ,onStart() ,onResume()
然后A在执行onStop() 方法
现在退出B返回到A
B先执行 onPause() 方法
A执行 onRestart(),onStart(),onResume()
B再执行onStop() ,onDestroy()
然后由A打开C
A执行onPause()
C执行onCreat() ,onStart() ,onResume()
再退出C返回A
C先执行 onPause()
A执行onResume()
C执行 onStop() ,onDestroy()
退出A
A执行onPause(),onStop() ,onDestroy()
事实证明只有你去打印了才能真正了解。
2022/5/1 更新:
当我们打开一个处于栈顶的Activity时生命周期的调用是怎样的呢?
首先我们会发送NEW_INTENT消息给主线程。
然后我们会同样会进入到onPaush ->onNewIntent -> onRestart -> onStart -> onResume