启动模式(Launch modes)
来源:互联网 发布:java从入门 pdf 编辑:程序博客网 时间:2024/05/20 17:08
<activity>下的launchMode属性可以设置四种启动方式:
standard (默认模式)
singleTop
singleTask
singleInstance
区别:
(1) 响应Intent时Activity将被装入哪个task:
对于standard和singleTop模式,由产生该Intent(调用startActivity())的task持有该Activity——除非Intent对象里含有FLAG_ACTIVITY_NEW_TASK标志,那么就像前面章节讲的那样的寻找一个新的task。
对于singTask和singleInstance模式,总是标志Activity为task的root Activity,开启这样的活动会新建一个task,而不是装入某个正在运行的任务。
(2) 一个Activity是否可以有多个实例:
一个standard或者singleTop属性的Activity可以实例化多次,可以属于多个不同的task,而且一个task也可以含有相同Activity的多个实例。相反的,singleTask或者singleInstance属性的Activity只能有一个实例(单例)。因为这些Activity是位于task的底部。
(3) 实例是否能允许在它的task里有其他的Activity:
一个singleInstance属性的Activity是它所在的task里仅有的一个Activity,如果他启动了另一个Activity,那个Activity会被加载进一个不同的task而无视它的启动模式。一个singleTask属性的Activity总是一个task里的root Activity,但是他可以启动另外的Activity并且将这个新的Activity装进同一个task里,standard和singleTop属性的Activity可以出现在task的任何位置。
(4) 是否创建一个新的Activity实例来处理一个新的Intent:
对于默认的standard方式,将会生成新的实例来处理每一个新的Intent。每个实例处理一个新的Intent。对singleTop模式,如果一个已经存在的实例在目标task的栈顶,那么就重用这个实例来处理这个新的Intent,如果这个实例存在但是不在栈顶,那就不重用他,而是重新创建一个实例来处理这个新的Intent并且将这个实例压入栈。
一个"singleTask"或"singleInstance"模式的activity只会有一个实例, 这样它们的实例就会处理所有的新intent。一个"singleInstance" activity总是在栈里的最上面(因为它是task里的唯一的activity), 这样它总是可以处理一个intent。而一个"singleTask" activity在栈里可以有或没有其他activity在它上面。如果有的话,它就不能对新到的intent进行处理,intent将被丢弃。(即使intent被丢弃,它的到来将使task来到前台,并维持在那里。)
- 启动模式(Launch modes)
- Android Activity 启动模式(Launch Mode)
- Activity Launch Mode(启动模式)
- MPI-Communication modes(通讯模式)
- android学习总结(16.08.26)Activity的launch Mode(启动模式)
- Data Guard Protection Modes(dg保护模式)
- activity的启动方式(launch mode)
- activity的启动方式(launch mode)
- activity的启动方式(launch mode)
- activity的启动方式(launch mode)
- activity的启动方式(launch mode)
- ROS(3)launch启动文件
- Android 四种启动模式(Launch Mode) 最直观详解
- Android开发,关于启动模式一点研究(Launch Mode)
- 映射模式:MM--Mapping Modes
- [UGUI]Render Modes渲染模式
- Activity加载模式(Launch mode)
- 【ROS】launch启动文件
- ACE消息队列 ACE_Message_Queue 入队列,出队列方法(1)
- ORA-00060错误
- RCP eclipse plugin: NullPointerException at org.eclipse.ui.internal.IntroAction.<init>
- dip, dp, px, sp的区别
- Refecing Improving the Design of Existing Code reading comments(二)
- 启动模式(Launch modes)
- 我对J2EE中13种技术规范的一个总结
- dp和px,那些不得不吐槽的故事——Android平台图
- Fiddler教程
- js面向对象设计用{}好还是function(){}好(构造函数)
- WP7 真机调试PHOTOCHOOSERTASK和CAMERACAPTURETASK
- android 手机侦探----源码共享
- repeater用法一步一步详讲,用来绑定和显示数据信息
- Activity 本质 AMS 分析