再说Activity的四种启动模式

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

  1. stander 标准启动模式:blog

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

    2. singleTop:
it

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

     3.singleTaskactivity

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

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

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

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

                !)若是存在该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

相关文章
相关标签/搜索