android开发 - Activity生命周期
本章主讲Activity的生命周期
Activity整个生命周期有四种状态,7个方法,3个嵌套循环
状态:
1. Activity/Running 活动状态
指的是当前用户正在交互的activity状态
2. Paused 暂停状态
指的是当前activity可见,但是被吐司或者对话框遮罩时状态
3. Stopped 停止状态
指的是被新的创建的activity遮挡时的状态,它保留了之前的操作信息和状态,但是如果系统内存不够,可能会被killed
4. Dead 非活动状态
指的是当activity尚未启动,或者被系统回收时处于非活动状态,可以手动调用finish()方法,终结activity
生命周期:
1. onCreate();
在activity第一次创建时被调用,可以做一些变量初始化,绑定数据,显示View视图
2. onStart();
创建完activity后,开始显示视图到界面上
3. onRestart();
当activity停止,或者中断后,重新显示视图时,会调用该方法
4. onResume();
视图在界面显示后,可以与用户交互了
5. onPause();
当跳转另一个activity时,或者停止前,或者销毁前调用
6. onStop();
当被另一个activity遮挡时调用,
7. onDestroy();
当activity销毁时调用
嵌套循环:
1. activity完整生命周期
从onCreate() 到 onDestroy()
2. activity可视生命周期
从onStart() 到 onStop()
3. activity前台生命周期
从onResume() 到 onPause();
例如:使用LogCat打印生命周期 过程是
1.完整生命周期
onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroy()
2. 运行activity,生命周期过程是
onCreate() -> onStart() -> onResume()
3. 横竖屏切换时生命周期时
onSaveInstanceState() -> onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onRestoreInstanceState() -> onResume
4.当我们在AndroidMenifest.xml中的相应的activity中添加android:configChanges="orientation"时
再横竖屏切换,生命周期只会执行onConfigurationChanged()方法,
5. 一个activity跳转另一个activity声明周期过程是
第一个activity
onSaveInstanceState() ->
onPause() ->
开始第二个activity
onCreate() ->
onStart() ->
onResume() ->
第一个activity停止了
onStop() ->
此时,返回第一个activity
onRestart() ->
onStart() ->
onResume() ->
此时,第二个activity销毁了
onStop() ->
onDestroy()
总结:activity跳转到新的activity时,旧的activity会被保存现场,并且停止了,新的activity被创建了,如果返回旧的activity时,新的activity会被销毁掉了,旧的activity会执行onRestart()方法,然后显示界面,并可交互状态,所以onCreate()方法只会被调用一次,但是在横竖屏切换时,那就相当于重新执行了一遍生命周期,销毁横竖屏前的对象,重新创建新的activity,如果在清单中配置了android:name="orientation"那么,就会执行onConfigurationChanged()方法,并且生命周期不会重新执行一遍
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。