Android的launchMode

来源:互联网 发布:光伏输出功率数据 编辑:程序博客网 时间:2024/04/30 18:23

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;

0 0