Activity四种启动模式2
2015-06-16 11:25
232 查看
一:Standard的启动模式
Standard是默认的模式每开始一个activity,就会在栈中加一个activity,相同的也会加,
所以加多少个,就要按多少次返回键才能回到最初的界面
二:singleTop的启动模式
1.清单配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleTop">
</activity>
Singletop:如果任务栈的栈顶已经存在这个activity的实例,
不会创建新的activity,而是利用旧的activity实例
调用 旧的activity的onNewIntent()方法
2.作用:
避免一个糟糕的用户体验,如果这个界面已经被打开且在任务栈的栈顶,就不会重复开启了
三:Singletask的启动模式:
1.Androidfest配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleTask">
</activity>
2.作用:
singletask的启动模式:在任务栈里面只允许一个实例存在,假如02是singletask,
栈里是:01 02 01 03 若此时开启02,则会复用这个已经存在的activity,并且把当前activity上面其他的activity从任务栈里清空!
3.应用场景:
浏览器:底层使用的是webkit c 内核,初始化一次需要申请很多的内存资源,占用cpu时间
所以使用singletask,保证在任务栈里只会有一个实例存在
四:singleInstance的启动模式(相当于实例):
1.Androidfest的配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleInstance">
</activity>
2.特点:
singleInstance的启动模式更加极端,
开启新的activity,会给自己创建一个单独的任务栈
3.应用场景:
在整个手机操作系统里面只会有一个该activity的实例存在,
所以多个应用程序共享这个activity的实例,有线程安全问题!
Standard是默认的模式每开始一个activity,就会在栈中加一个activity,相同的也会加,
所以加多少个,就要按多少次返回键才能回到最初的界面
二:singleTop的启动模式
1.清单配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleTop">
</activity>
Singletop:如果任务栈的栈顶已经存在这个activity的实例,
不会创建新的activity,而是利用旧的activity实例
调用 旧的activity的onNewIntent()方法
2.作用:
避免一个糟糕的用户体验,如果这个界面已经被打开且在任务栈的栈顶,就不会重复开启了
三:Singletask的启动模式:
1.Androidfest配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleTask">
</activity>
2.作用:
singletask的启动模式:在任务栈里面只允许一个实例存在,假如02是singletask,
栈里是:01 02 01 03 若此时开启02,则会复用这个已经存在的activity,并且把当前activity上面其他的activity从任务栈里清空!
3.应用场景:
浏览器:底层使用的是webkit c 内核,初始化一次需要申请很多的内存资源,占用cpu时间
所以使用singletask,保证在任务栈里只会有一个实例存在
四:singleInstance的启动模式(相当于实例):
1.Androidfest的配置:
<activity
android:name="com.itcode.taskstack.SecondActivity"
android:label="@string/_second"
android:launchMode="singleInstance">
</activity>
2.特点:
singleInstance的启动模式更加极端,
开启新的activity,会给自己创建一个单独的任务栈
3.应用场景:
在整个手机操作系统里面只会有一个该activity的实例存在,
所以多个应用程序共享这个activity的实例,有线程安全问题!
相关文章推荐
- I帧,P帧,B帧 压缩率对比
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
- 在WAMP中添加其它PHP版本
- [C/CPP系列知识] 在C中使用没有声明的函数时将发生什么 What happens when a function is called before its declaration in C
- VB中 MSComm控件使用详解
- oracle 基本操作练习——简单的sql语句
- Activity四种启动模式1
- Redhat下配置文件的不可见字符导致tomcat无法启动
- Git使用技巧(整理)一
- [转载]WinForm窗体间传值的方法
- C++11变长模板解析(深入理解C++11)
- java 解压缩zip 压缩zip
- 如何写一份有内涵的商业需求文档
- 屏幕尺寸、密度,分辨率查询网站(手机、平板、显示器)
- Find Peak Element——二分查找的变形
- LeetCode_33---Search in Rotated Sorted Array
- 中英文对齐,方便查询
- <>' operator is not allowed for source level below 1.7
- Python_python2_Pycharm. 在Pycharm中出现的中文编码问题
- Example Program: Event-Driven Simulation