android <activity>标签的一些属性
时间:2010-10-27 来源:eachcan
亲戚为任务的一个标识,表示活动与任务的从属关系.
android:allowTaskReparenting
是否可以将目标activity从启动它的那个Task移动到他自己定义的而且马上要显示的那个Task.如果为false,它就会留在启动它的那个Task中.
android:alwaysRetainTaskState
是否让系统保留任务的最后状态. 一般情况下, 在按home键后再次启动应用,系统会去除栈内所有在根活动之上的活动; 或者某任务经过一段时间没有被访问时也会被系统清除其他活动. 本选项仅对根活动有意义,其他活动包含此标签会被忽略.
android:clearTaskOnLaunch
是否在从 home 界面重新启动时清空Task. 如果为 true, 每次用户启动任务, 用户都被带到根活动.不管他们最后在做什么,也不管是按BACK或HOME键最后离开的它. 如果是 false, 则不会这样.
例如,假设用户从 home 启动 P , 然后从P启动 Q , 用户又点击了HOME, 然后又启动了P. 正常情况下用户将会看到Q, 因为这是用户最后在 P 中做的工作. 如果P中将此标志设置为 true ,当用户点击 home 时所有的P之上的活动都会被清除, 所以用户再次点击回来时会只能看到 P.
如果这个属性和 allowTaskReparenting 同时为 true 时, 所有的可以被 re-parented 的活动都被移到他们共享亲戚关系的任务中, 剩下的活动都被丢弃了.
android:finishOnTaskLaunch
在用户从 home 界面重新启动应用时, 是否结束掉这个活动. 如果这个属性和 allowTaskReparenting 同时为 true 时, 本属性会干掉那一个属性. 本活动的亲戚也会被忽略. 这个活动将会被销毁.
android:launchMode
用例 | 启动模式 | 多实例 | 注释 |
---|---|---|---|
适合大部分活动的普通模式 | "standard" | Yes | 默认值.系统总是会创建一个新实例 |
"singleTop" | Conditionally | 如果一个实例已经存在在目标任务的栈顶,则复用,否则会创建新实例. 可以通过重写 onNewIntent() 来捕获 | |
特殊启动方法 (不推荐用于一般应用) |
"singleTask" | No |
如果目标活动不存在,则会创建它并放在目标任务栈底, 然后启动它; 如果目标活动已存在, 则会启动它并执行它的 onNewIntent() 方法 |
"singleInstance" | No | 与 "singleTask" 相同, 但是这个活动将会独占一个任务 |