2013.08.21——— android 四种启动模式

2013.08.21——— android 四种启动模式
参考: http://marshal.easymorse.com/archives/2950
http://guide.eoeandroid.com/#Tasks_and_Back_Stack
http://blog.csdn.net/wang_zun_ren/article/details/6823257
http://blog.sina.com.cn/s/blog_7ec412690100y2vl.html

android的四种启动模式为:
standard,singleTop,singleTask,singleInstance

standard:这个是android默认的启动模式
假设A为standard模式
A-B-C
然后C再启动A
A-B-C-A


singleTop:出入栈顶的就不再重新实例化
假设C为singleTop模式
A-B-C
然后C启动C
A-B-C
如果
A-B-C-D
然后D启动C
A-B-C-D-C


singleTask:这个比较复杂,个人理解为:
1、启动这个activity时,如果没有taskid相同的task存在,就新建一个task,如果存在,就放入栈顶
2、启动这个activity时,如果task中存在该实例,就会结束这个实例上面的所有activity,让这个实例出现在栈顶
3、另一个task启动这个activity时,如果taskB存在该实例,就执行2,并把taskB整体放在task上面
看例子
假设B为singleTask模式
TaskA
A-B-C
按home键,TaskA转为后台
TaskB
M-N
然后N启动B
M-N-A-B
如果
TaskB
M-N
然后N启动B
这个时候 B就会新建一个Task了
如果
A-B-C-A
然后A再到B
A-B
清楚了C和A


singleInstance:Activity 总是它所在Task 的唯一成员,改Acitvity启动的其他所有都会在其他task里面
假设B为singleInstance模式
TaskA
A
然后启动B
TaskA
A
TaskB
B
然后B启动C
TaskA
A-C
TaskB
B






你可能感兴趣的:(android)