任务栈的概念:一般情况下,有多少个应用在运行,就对应开启多少任务栈。每开启一个应用程序,就会创建一个与之对应的任务栈。
任务栈的作用:是存放Activity引用的,Activity不同的启动模式,对应不同的任务栈的存放。可以通过getTaskId()来获取任务栈的id,如果前面的任务栈已经清空,新开的任务栈的ID+1, 是自动增长的。
启动模式:
Standard: 默认,每次调用startActivity( )都会创建一个新的Activity放在栈顶。
SingleTop: 启动activity时,指定activity不在任务栈栈顶就创建,如在栈顶,就不会创建,复调用onNewInstance,复用已经存在的实例。
SingleTask: 在任务栈里面,只允许存在一个实例,如果启动的Activity不存在就创建,如果存在就直接跳转到指定的activity所在的位置。例如:栈内有ABCD,D想创建A,
即A上的BCD相应的Activity将移除。其实也就是说SingleTask只会在栈中存在一个activity,没有的话,就创建一个。如果有的话,就直接找到对应的activity,把其它的activity移除。
SingleInstance: (单例)开启一个新的任务栈来存放这个activity实例,在整个手机操作系统里面只有一个该任务栈的实例存在。此模式开启的activity是运行在自己单独的任务栈中。
未完待续............................