Activity的生命周期
必调用的三个方法:onCreate() –> onStart() –> onResume(),用AAA表示
(1)父Activity启动子Activity,子Actvity退出,父Activity调用顺序如下
AAA –> onFreeze() –> onPause() –> onStop() –> onRestart() –> onStart(),onResume() …
(2)用户点击Home,Actvity调用顺序如下
AAA –> onFreeze() –> onPause() –> onStop() — Maybe –> onDestroy() – Maybe
(3)调用finish(), Activity调用顺序如下
AAA –> onPause() –> onStop() –> onDestroy()
(4)在Activity上显示dialog, Activity调用顺序如下
AAA
(5)在父Activity上显示透明的或非全屏的activity,Activity调用顺序如下
AAA –> onFreeze() –> onPause()
(6)设备进入睡眠状态,Activity调用顺序如下
AAA –> onFreeze() –> onPause()
2.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
onSaveInstanceState()
当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。