Android Acitivity 生命周期

Fragment 的生命周期:

Android Fragment 生命周期及其API使用(建议使用自定义View替换Fragment)

Activity的生命周期:

(1)启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

(2)当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

    Activity -> onFreeze() -> onPause()

(3)当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

(4)当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

    Activity -> onFreeze() -> onPause() -> onStop() -> Maybe -> onDestroy()

(5)用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

(6)当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

(7)用户退出当前Activity(即调用finish()):系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。  

    Activity  -> onPause() -> onStop()  -> onDestroy()

注意:当前Activity弹出的dialog则不会执行Activity任何生命周期中的方法,只有其它Activity弹出了Dialog或者拦住了当前的Activity才会执行onPause() 

当电话来电时:

  Activity -> onPause(), 如果onPause()的时候,用户打开了一个“联系人”,做了操作,此时Activity 不可见, Activity -> onStop(),由于Activity和其所在的进程和Task并没有被销毁,Activity的onRestart 和onStart事件被执行,接着Activity的onResume事件被执行,Activity又被呈现给了用户。

用户这次使用完后,按Back键返回到桌面,A的 onPause, onStop被执行,随后A的onDestroy被执行,由于当前Task中已经没有任何Activity,A所在的Process的重要程度被降到很低,很快A所在的Process被系统结束。

posted @ 2015-09-28 23:24  晕菜一员  阅读(338)  评论(0编辑  收藏  举报