Android中的Activity四种启动模式(launchMode)(面试必问)
2016-04-10 19:18
483 查看
android:launchMode
standard
默认标准的启动模式,每次startActivity(Intent intent)请求都创建一个新的activity实 例,适用于大多数场景。
singleTop
单一顶部,如果要启动的activity在任务栈的顶部已经存在,不会创建新的实例,而是调用 onNewIntent(Intent intent)方法。比如:浏览器书签,避免顶部的activity重复创建,解 决用户体验问题。
singleTask
单一任务,activity只会在任务栈里面存在一个实例,如果要激活的activity在任务栈中已 经存在,就不会创建新的activity实例,而是复用这个已经存在的activity,调用 onNewIntent(Intent intent)方法,并且清空当前activity任务栈上面所有的activity。 比如:浏览器activity,整个任务栈里面只有一个实例,节约内存和CPU。 activity还是运行在当前应用程序的任务栈里面,不会创建新的任务栈。
singleInstance 单例模式
单一实例,整个Android系统只有一个实例存在,不同的应用打开这个activity共享公共的同 一个actiivty,它单独运行在一个独立的任务栈里面,任务栈里面只有它一个实例存在。
比如:呼叫来电界面InCallScreen
两种实现方式
1.在manifest文件里面添加
本文摘抄子我的老师的笔记.....加以修改
(曹老师)曹伟github网址:https://github.com/caoweic
standard
默认标准的启动模式,每次startActivity(Intent intent)请求都创建一个新的activity实 例,适用于大多数场景。
singleTop
单一顶部,如果要启动的activity在任务栈的顶部已经存在,不会创建新的实例,而是调用 onNewIntent(Intent intent)方法。比如:浏览器书签,避免顶部的activity重复创建,解 决用户体验问题。
singleTask
单一任务,activity只会在任务栈里面存在一个实例,如果要激活的activity在任务栈中已 经存在,就不会创建新的activity实例,而是复用这个已经存在的activity,调用 onNewIntent(Intent intent)方法,并且清空当前activity任务栈上面所有的activity。 比如:浏览器activity,整个任务栈里面只有一个实例,节约内存和CPU。 activity还是运行在当前应用程序的任务栈里面,不会创建新的任务栈。
singleInstance 单例模式
单一实例,整个Android系统只有一个实例存在,不同的应用打开这个activity共享公共的同 一个actiivty,它单独运行在一个独立的任务栈里面,任务栈里面只有它一个实例存在。
比如:呼叫来电界面InCallScreen
两种实现方式
1.在manifest文件里面添加
<activity android:name=".AActivity" android:launchMode="singleTop">2.在intent里面设置标签
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
本文摘抄子我的老师的笔记.....加以修改
(曹老师)曹伟github网址:https://github.com/caoweic
相关文章推荐
- 局域网与广域网接口标准
- web标准知识——从p开始,循序渐进
- 网页打开新窗口target=_blank不符合标准
- 对C语言编程标准以及声明的基本理解
- XHTML标准的版本
- Recommended C Style and Coding Standards中文翻译版第1/3页
- 谁会去在意什么 Web 标准
- document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
- De facto standard 世界上不可思议的事实标准
- 国家标准网www.biaozhun.net所有标准免费下载
- Unix期待未来新标准
- 综合布线2007验收标准(GB50312-2007)电子版
- 网络协议标准规范大全
- 耀邦同志在“真理标准”大讨论的前前后后(上篇)
- DICOM标准简介
- w3c WEB标准的英文写法
- XHTML1.1标准翻译 (进行中...)
- 一个好程序员的标准
- 小议H.264编解码