浅析Activity的生命周期
一、 onCreate()
onCreate()表示当前的Activity正在被创建,一般在这个方法中进行活动的初始化工作,如设置布局工作、加载数据、绑定控件等
二、onStart()
onStart()表示当前的Activity正在被启动,经历该回调后,Activity 由不可见变为可见,但此时只是处于后台可见,还不能和用户进行交互
三、onResume()
onResume()表示当前的Activity已经处于前台可见了,即已经可见的 Activity 从后台来到前台,可以和用户进行交互
四、onPause()
onPause()表示当前的Activity正在停止,此时 Activity 不再处于前台,即已经可见的Activity由前台来到后台,无法与用户进行交互,并且紧接着就会调用 onStop() ,此情形常见于用户按HOME键或BACK键或跳转到其他的Activity
五、onStop()
onStop()表示当前的Activity即将停止,此时 Activity 由后台可见变为不可见,在这里可以进行一些稍微重量级的操作
六、onDestroy()
onDestroy()表示当前的Activity即将被销毁,应该将资源的回收和释放工作在该方法中执行
七、 onReStart()
onReStart()表示当前的Activity正在重新启动,紧接着会顺序调用onStart()和onResume(),此情形常见于用户按HOME键后又返回至当前的Activity或用户跳转到其他的Activity后又返回至当前的Activity
八、结果分析
此图是App运行时调用的三个方法onCreate() —> onStart() —> onResume()
此图是App运行后,用户按HOME键后调用的方法onPause() —> onStop(),在此种情况下Activity并不会被销毁
此图是App运行后,用户按HOME键之后再返回至当前Activity调用的方法onRestart() —> onStart() —> onResume()
此图是App运行后,用户按BACK键调用的方法onPause() —> onStop() —> onDestroy(),在此种情况下Activity将会被销毁
此图是App运行后,由MainActivity跳转到SecondActivity后调用的方法,由图可知,由当前的MainActivity跳转到SecondActivity会首先调用MainActivity的onPause(),然后紧接着调用SecondActivity的onCreate() —> onStart() —>onResume(),最后调用当前Activity的onStop()
此图是App运行后,由MainActivity跳转到SecondActivity后,再返回至MainActivity时调用的方法,由图可知,由MainActivity跳转到SecondActivity后,再返回至MainActivity时会率先调用SecondActivity的onPause(),接着调用MainActivity的onRestart() —> onStart() —> onResume() ,最后调用SecondActivity的onStop() —> onDestroy()
九、 结果统计
情况 | 回调 |
---|---|
第一次启动 | onCreate()—>onStart()—>onResume() |
从MainActivity跳转到 SecondActivity | m_onPause() —> s_onCreate() —> s_onStart() —> s_onResume() —> m_onStop() |
再由SecondActivity跳转到 MainActivity | s_onPause() —> m_onRestart() —> m_onStart() —> m_onResume() —> s_onStop() |
用户按 HOME键 | onPause() -> onStop() |
按 HOME 键后,再次返回到应用 | onRestart() —> onStart() —> onResume() |
用户按 BACK键回退 | onPause() —> onStop() —> onDestroy() |