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

本文详细探讨了Android中Activity的生命周期,并结合不同的launchMode,如standard模式下,Activity跳转时的具体生命周期变化,包括onCreate、onStart、onResume等方法的调用顺序,以及特殊情况下如Dialog主题和Home键、Back键操作的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在回顾玉刚的《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

      


       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值