Android的launchMode

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;