Activity其他属性
**在AndroidManifest清单下配置<acticity>
**的节点属性
# 1. allowTaskReparenting
Activity能否从启动的Task移动到存在“亲属”关系的Task(当这个Task进入到前台时)。该属性取值为true或false。
【情景】
- ActivityA的allowTaskReparenting设置为true;
- ActivityA所在的应用程序APP1当前显示另一个ActivityB;
- 使用另一个应用程序APP2激活该APP1中的ActivityA;
结论:直接回到桌面(2个APP均不退出时),重新点击APP1的图标,会直接启动APP1的ActivityA,而该Activity是由APP2启动的,且按BACK键会回退到APP1的ActivityB,后续再点击APP2的图标时,可以发现其任务栈中已经没有ActivityA。
# 2. alwaysRetainTaskState
Activity所在的Task的状态是否总是由系统来保持,即该Task可能长期被置于后台,但系统不会对其进行清理。
clearTaskOnLaunch:当Task被置于后台,是否清除Task中除了根Activity以外的其它所有 Activity。
这两个属性取值为true或false,默认值是false。
# 3. clearTaskOnLaunch
如果任务栈的根 Activity 被设置了 clearTaskOnLaunch=true
,那么当按下 Home 键返回桌面,再重新点击桌面图标进入应用时(从最近任务列表进入不会有效果),根 Activity 以上的其他 Activity 全部弹出,只留下自己。
如果设置 clearTaskOnLaunch=true
的 Activity 不在任务栈底,是没有效果的。
# 4. finishOnTaskLaunch
当Activity已经启动,且其所在的Task被置于后台之后,如果Task再次回到前台,是否清除已经存在的实例。
- 该属性作用于单个Activity;该属性取值为true或false,默认为false。
# 5. autoRemoveFromRecents
先来问一个问题:进入 App ,从 A 跳到 B ,从 B 跳到 C ,再按返回键直到回到桌面。这时候查看最近任务列表,里面可以看到这个APP吗?答案是可以的。
而 autoRemoveFromRecents
的作用就是当任务栈中的所有 Activity 都被移除时,自动不在最近任务列表中显示。
# 6. noHistory
当Activity被置于后台之后,是否将其从Back Stack中清除并结束。
该属性取值为true或false,默认为false。
【使用场景】:用户欢迎界面或者引导借界面,该界面一旦到后台,就会立即清除;当用户点Back时,就不会回到该界面
在启动另外一个Acitivity时,跳转
finish()
该Activity后也是相同的效果