再说Activity的四种启动模式

Android启动模式分为四种,分别为:standard、singleTop、singleTask、singleInstance

  1. stander 标准启动模式:

    这是Activity默认的启动模式,也是逻辑最简单的一种,只要Activity使用这种模式进行启动,系统会不管三七二十一,直接create一个Activity实例出来,然后加入到Task顶。

    2. singleTop:

    这中启动模式和standard的最大区别,就是它在启动时会检查Task顶部是否已经存在该Activity实例,if 存在 则重用已经存在的实例,else 重新创建一个activity实例并加入task顶部。

     3.singleTask

      这种启动模式相对于上面两个,就比较复杂。如果activity以这种模式启动,会执行下面的流程:

        a)系统会先为这个Activity加上Flag_new_task 的标签

        b)获取该activity的 taskAffinity属性(该属性默认为应用程序的包名)

        c)检查系统中是否已经存在taskAffinity属性值所对应的Task:

                !)如果存在该Task:则先检查该Task中是否有目标Activity的实例,if存在,则清空该实例以上所有的Activity实例,将该Activity实例放在Task顶部。如果不存在,则重新创建一个该Activity的实例,并且加入到该Task中。

                  !!)如果不存在该Task,则创建一个新的Task,并且创建目标Activity并将其加入到Task顶端。

      4.singleInstance

        这种模式启动Activity,会放置在一个单独的Task中,而且这个task中只有着一个activity,系统会保证其全系统唯一性。如果在这类Activity启动新的Activity则所启动的Activity有可能会生成新的Task中或加入到别的已有的task中,这个根据taskAffinity来确定。

Task的一些特点:Task不仅仅可以跨应用,也可以跨进程进行。

本文参考:http://blog.csdn.net/zhangjg_blog/article/details/10923643




你可能感兴趣的:(Activity,启动模式)