一:Activity生命周期的分析
onCreate: 表示Activity正在被创建,在此方法中做一些初始化工作,如调用setContentView 去加载界面布局资源
onRestart: 表示Activity正在重新启动。Activity从不可见状态变为可见状态时,该方法就会被回调。适用场景:用户点击home建之后,重新回到该页面。或者是启动新的Activity之后,在回到该页面。也可以是熄灭屏幕后重新点亮回到该页面。
onStart:表示Activity正在启动,这时Activity还不可见
onResume: 表示Activity已经可见了
onPause: 表示Activity正在停止,这时候Activity还是可见的
onStop:表示Activity即将停止,这时候Activity已经不可见了
onDestory: 表示Activity即将被销毁,在该方法中可以做一些回收工作和资源的释放
Activity生命周期转换:
二:Activity生命周期的一些场景
- Activity启动一个新的生命周期:
MainActivity: --onCreate--
MainActivity: --onStart--
MainActivity: --onResume--
MainActivity: --onPause--
SecondActivity: --onCreate--
SecondActivity: --onStart--
SecondActivity: --onResume--
MainActivity: --onStop--
- SecondActivity点击back进行回退到MainActivity
SecondActivity: --onPause--
MainActivity: --onRestart--
MainActivity: --onStart--
MainActivity: --onResume--
SecondActivity: --onStop--
SecondActivity: --onDestroy--
- MainActivity熄灭屏幕在点亮屏幕
//熄灭
MainActivity: --onPause--
MainActivity: --onSaveInstanceState--
MainActivity: --onStop--
//点亮
MainActivity: --onRestart--
MainActivity: --onStart--
MainActivity: --onResume--
- MainActivity点击home,在返回来(点击桌面图标或者双击home键选择app)
MainActivity: --onPause--
MainActivity: --onSaveInstanceState--
MainActivity: --onStop--
//重新回到该Activity
MainActivity: --onRestart--
MainActivity: --onStart--
MainActivity: --onResume--
点击home键之后,App就切换到后台了,只要在后台不被系统杀死,Activity就不需要重建。
- Activity被系统回收之前进行状态的保存
A.当系统配置发生改变时,例如旋转手机屏幕,
b.当系统内存不足时,会杀死App所在的进程。
发生上面俩种情况时,Activity在被销毁之前,系统会回调Activity的onSaveInstanceState()方法。然后我们重新回到Activity时系统会主动回调onRestoreInstanceState()方法
旋转手机屏幕:
MainActivity: --onPause--
MainActivity: --onSaveInstanceState--
MainActivity: --onStop--
MainActivity: --onDestroy--
//Activity被销毁,需重建
MainActivity: --onCreate--
MainActivity: --onStart--
MainActivity: --onRestoreInstanceState--
MainActivity: --onResume--