在清单文件中配置launchMode
standard模式
默认不写也是standard模式
创建的新的任务会放到栈顶,当点击返回的时候就是销毁的当前任务,也就是出栈的过程
![]()
singleTop模式
如果栈顶已经是当前的任务,那么就不会在创建新的任务
应用场景:应用的推送
可以出现的情况
![]()
singleTask模式
如果要创建的任务在占中没有,就会创建该任务,并且放到栈顶,如果要创建的任务已经存在,就会把这个任务以上的任务全部从栈中移除,使得当前任务成为最顶部的任务。
使用场景:当这个任务栈的资源相对比较大的时候,就使用此模式。
singleInstance模式
前三种模式都是在同一个任务栈里,SingleInstance比较特别,他是独立的一个任务栈,是单一的一个对象,不会再创建,只会把他提前。
(例如:栈1中启动了4个Activity1,当启动Activity2时会再创建一个栈2,将栈2移到栈1的前面,再次启动Activity2时不会创建栈也不会创建Activity2,点击返回时栈2销毁返回到栈1.)
(例如:栈1中启动了4个Activity1,当启动Activity2时会再创建一个栈2,将栈2移到栈1的前面再启动Activity1时将栈1放到栈2的前面,点击返回时栈1内的Activity全部销毁才会返回到栈2.)
应用场景:在整个系统中只有唯一一个实例,比如launcher,只有一个。