launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。
(http://blog.csdn.net/liuhe688/article/details/6754323)
1.standard(默认的方式)
每新建一个anctivity都会再次创建一个实例
2.singleTop
如果想要创建一个activity,但是这个activity有一个实例在栈顶,则直接使用这个,否则同standard
3.singleTask
如果想要创建一个activity,但是这个activity在栈中有实例a,如果创建则清除实例前面的所有activity,将实例a放到栈顶
4.singleInstance
新创建的activity会在另外一个task中,且这个task中只会有这个activity的一个实例