两个Activity跳转时、App前后台切换时、Activity横竖屏切换时的Activity生命周期变化

一 、A、B两个Activity跳转时

A启动:

        A:onCreate      —>A被第一次创建
        A:onStart         —>A可见
        A:onResume   —>A开始准备与用户交互

A中启动B:

        A:onPause      —>A即将启动B
        B:onCreate     —>B被第一次创建
        B:onStart         —>B可见
        B:onResume   —>B开始准备与用户交互
        A:onStop         —>A不可见

B返回A:

        B:onPause      —>B将返回A
        A:onRestart     —>A再次启动
        A:onStart         —>A可见
        A:onResume   —>A开始准备与用户交互
        B:onStop         —>B不可见
        B:onDestroy    —>B被销毁

A退出:

        A:onPause      —>A停止活动
        A:onStop         —>A不可见
        A:onDestroy    —>A被销毁

PS:1、onPause方法中不要做耗时的操作,否则会影响Activity之间的跳转效率,用户体验非常不好。 例如监听程序退回到后台 的操作应放在onStop中,不能放在onPause中。2、若A跳转B时,B的onCreate、onStart、onResume生命周期方法在A的onStop之后执行,由于onStop方法时Activity已不可见,会造成A还没创建B就不可见导致黑屏的情况发生。

二 、App前后台切换

A启动后切换至后台:

        A:onCreate      —>A被第一次创建
        A:onStart         —>A可见
        A:onResume   —>A开始准备与用户交互    —>置后台

        A:onPause      —>A停止活动
        A:onSaveInstanceState         —>A保存状态
        A:onStop         —>A不可见

A从后台切换至前台:

        A:onRestart     —>A被重新唤起
        A:onStart         —>A可见
        A:onResume   —>A开始准备与用户交互

三、Activity横竖屏切换

1、未配置android:configChanges时:  

       横\竖屏启动:onCreate-->onStart-->onResume

       横\竖屏切换:

       onPause-->onSaveInstanceState-->onStop-->onDestroy-->onCreate-->onStart-->onRestoreInstanceState-->onResume

       退出:onPause -->onStop-->onDestroy

2、 配置android:configChanges="orientation|keyboardHidden|screenSize"配置三种中不同的组合情况,不同的系统,不同的手机品牌会执行不同情况的生命周期。

                                                                                                     

猜你喜欢

转载自blog.csdn.net/cunjicsdn/article/details/88669145