Android中Activity启动模式-初探

详解Android Activity启动模式
本文深入探讨了Android中Activity的四种启动模式:standard、singleTop、singleTask与singleInstance,通过对比不同模式下Activity的生命周期及实例重用机制,帮助读者更好地理解各模式的特点与应用场景。


详细分析 看这篇文章:http://www.cnblogs.com/fanchangfa/archive/2012/08/25/2657012.html

这里只说一些重点


Activity启动模式设置:

        <activity android:name=".MainActivity" android:launchMode="standard" />

Activity的四种启动模式:

    1. standard

        模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。

    2. singleTop

        如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。

    3. singleTask

        如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。

    4. singleInstance

        在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。


    1. standard 没啥说的。

    2. singleTop

       注意在栈顶的情况,直接重用该实例,这时注意 Activity的生命周期是:

                                

             先onPause,然后调用 onNewIntent  ,然后再 OnResume

   3. singleTask

            先创建实例

                           

      分两种情况:

                     a, 栈顶就是实例

                                 

                             这种情况下 与 singleTop  生命周期流程一样

                             返回 键顺序也一样

                 b,   栈顶不是实例,实例在栈顶下面

                           

                                 注意上面的生命周期流程

                         Activity界面流程:

                           操作流程:   打开 Standard Activity 1----》第一次 打开TopActivity -----》打开 Standard Activity 2--》第二次     打开TopActivity                                                                                       

              

                           返回键:        第一次----》Standard Activity 1; 第二次   退出app

                         说明了 在 第二次 打开TopActivity时  系统从栈顶 向下查找实例,找到了,就是把此Activity实例作为栈顶,  Standard Activity 2 被丢弃了


4. singleInstance

           先创建实例

                

   

        分两种情况:

                     a, 栈顶就是实例


                          

                           这种情况下 与 singleTop   single生命周期流程一样

                           返回 键顺序也一样

                   b,   栈顶不是实例,实例在栈顶下面

                         

                         与 singleTask 一样

                        那么,返回键呢?

                         Activity界面流程:

                           操作流程:   打开 Standard Activity 1----》第一次 打开InstanceActivity -----》打开 Standard Activity 2--》第二次 打开InstanceActivity

                            返回键:        第一次----》Standard Activity 2;第二次,Standard Activity 1; 第三次   退出app

                             说明了 在 第二次 打开InstanceActivity时  系统从栈顶 向下查找实例,找到了,就是把此Activity实例直接移到了栈顶,这是与singleTask的区别

      

           总结:以前也看了文章,都是看看而已,没有动手去做做,只有自己亲自去实践了,才能更好的理解,和发现没有讲到的东西。

从今以后,要告别眼高手低,多动手动脑,再次出发,改变自己。


试验用例下载地址:http://download.youkuaiyun.com/detail/wcuibo2009/7167329

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值