Android的activity的launchMode有四种;
1. standard
这样的activity在task中是标准的先进后出;例如task中的情况是:A–>B–>C 用户按了back, task就变成了A–>B
2. singleTop
如何activity在task的顶部,那么不需要重新创建新的activity,直接使用它就可以了;
例如task中的情况是:A–>B–>C,这时系统来了一个Intent,要求启动C(是singleTop),
这时C已经在栈顶了,不需要创建新的C,直接使用就可以了。
但是如果系统需要的是B(是singleTop),这时就要创建新的B,因为B没有在栈顶;
3. singleTask
在一个task中保证某个activity的唯一性;
例如task中的情况是:A–>B–>C 这时系统来了一个Intent,要求启动C(是singleTask), 不需要创建新的C,直接使用就可以了。
再例如task中的情况是:A–>B–>C
这时系统来了一个Intent,要求启动B(是singleTask),系统会将B之上的所以activity出栈,直接使用B,这时栈变成了:A–>B
再例如task1中的情况是:A–>B–>C;task2中的情况是D–>E;这时系统来了一个Intent,要求启动B(是singleTask),系统会将task1的栈和task2合并变成:
D–>E–>A–>B
4. singleInstance
和singleTask一样,只是在包含singleInstance的task中只能由singleInstance的activity;