启动模式
standard : 默认模式 无论什么情况,只要开启Activity都会创建一个新的放在任务栈中!!被开启的Activity的任务栈和开启他的Activity任务栈是同一个!singleTop :当使用这种启动模式的Activity在栈顶的时候,再次开启,就不会创建新的Activity,如果不在栈顶,和默认模式一样!!!
singleTask: 在同一个栈中只能有唯一的Activity实例,如果要跳转至已存在的singleTask模式的Activity,那么会清除这个Activity以上的所有Activity把他显示出来!!
singleIntance:会创建一个新的任务栈,如果已经存在,就不会创建了!!!只有他自己
Activity什么情况下会复用!!
1.SingleTop: 当前Activity在顶部,再次启动的时候会复用!
2.SingleTask: Activity是SingleTask时候,再次启动就会复用!!
3.singleInstance: Activity是SingleInstance时候,再次启动也会复用!
使用
清单文件中,对应每个Activity都会有一个 launchMode=属性,用来控制本Activiy启动模式
可以在java代码中进行启动模式设置!如果既有清单文件设置,又有java代码设置! 已代码设置为主!!
setFlags只能设置三种启动模式
1.如果不设置,就是默认!
2.如果flags 为Flag_activity_single_top
相当于 清单文件中的 singleTop
3.Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP
两个结合起来相当于 singleTask
可以写两个属性,用|拼接
注意 flags属性不能设置 singleIntance