Activity生命周期执行的顺序总结

最近在回顾玉刚的《Android开发艺术探索》的时候稍微扩展了一下, 如果Activity生命周期结合launchMode后, Activity之间跳转时, Activity的生命周期会发生什么新的变化呢? 基于此想法有了这篇博客的总结. 各位同仁如果在看的过程中发现任何问题, 欢迎留言反馈, 我会及时甄误, 谢谢。

一、launchMode= standard:

      1.ActivityA 跳转到ActivityB, 他们的生命周期如下:

         Activty(A) -- onPause

         Activty(B) -- onCreate

         Activty(B) -- onStart

         Activty(B) -- onPostCreate

         Activty(B) -- onResume:

         Activty(B) -- onPostResume

         Activty(A) -- onSaveInstanceState

         Activty(A) -- onStop

         特别注意:
               (1)  如果新开启的Activity(B)为Dialog主题时, Activity(A)不执行onStop方法;

                      如果在ActivityB按Home键退到后台, 它们的生命周期如下:                          

                          Activty(B) -- onPause
                          Activty(A) -- onStop

                          Activty(B) -- onSaveInstanceState

                          Activty(B) -- onStop

               (2)   如果开启的Activity(B)为Dialog主题,  Activity(A)的onStop不执行, 继续打开新的ActivityC, 它们的生命周期如下:
                     
Activty(B) -- onPause:

                     Activty(A) -- onStop:

                     Activty(C) -- onCreate

                     Activty(C) -- onStart

                    Activty(C) -- onPostCreate

                    Activty(C) -- onResume:

                    Activty(C) -- onPostResume

                    Activty(B) -- onSaveInstanceState

                    Activty(B) -- onStop

                 这时在ActivityC按Back返回, 它们之间的生命周期如下:

                          Activty(C) -- onPause

                          Activty(A) -- onRestart

                          Activty(A) -- onStart

                          Activty(B) -- onRestart

                          Activty(B) -- onStart

                         Activty(B) -- onResume

                         Activty(B) -- onPostResume

                        Activty(C) -- onStop

                        Activty(C) -- onDestroy                     

    2. 这时在ActivityB按Back键正常返回, 它们之间的生命周期如下:     

        Activity(B) -- onPause:

        Activty(A) -- onRestart:

        Activty(A) -- onStart:

        Activty(A) -- onResume:

        Activty(A) -- onPostResume:

        Activty(B) -- onStop

        Activty(B) -- onDestroy

      


       

你可能感兴趣的:(android开发)