Xml文件里Activity标签属性
<activity>
包含在:
<application>
能包含:
<intent-filter>
<meta-data>
描述:
声明一个Activity(一个Activity子类),用来实现app的可见用户接口部分。所有的Activity都必须表现成manifest文件的<activity>元素。任何没有声明在manifest文件里的Activity将不会被系统看见,并且将永远不会运行。
属性:
android:
allowTaskReparenting
当这个任务是下一个要带到前台的, activity是否能从它启动的任务移动到跟它有密切关系的任务里。--“true”它能移动,“false”它必须属于启动它的那个任务。
如果这个属性没有被设置,相应被设置在<application>元素里的
allowTaskReparenting
属性将适用于activity。默认值是“false”。
通常当一个activity被启动,它就被关联到启动这个activity的activity的任务里,并且整个生命周期都在那里。你能用这个属性来促使这个activity被重新定义到跟它有密切关系的任务里,在它的当前任务不再被显示时。典型地,它被用来引起一个app的activity被移动到这个app关联的主任务里。
例如,如果一个email消息包含一个网页链接,点击这个链接将会带来一个显示这个网页的activity。这个activity是被那个浏览器app定义的,但是它被启动作为email任务的一部分。如果这个activity被重定义在浏览器任务里,它将在浏览器任务下次来到前台时显示,并且在email再次来到前台时,它将不存在。
Activity的密切关系通
过
taskAffinity
属性定义。一个任务的密切关系是通过读取它的根activity的密切关系属性来决定的。因此,通过定义,一个根activity总是在具有相同密切关系的任务中。因为启动模式为“singleTask”或“singleInstance”的activity只能作为一个任务的根,重定义行为被限制在“standard”和“singleTop”模式里(也可以看启动模式属性)。
android:alwaysRetainTaskState
activity
所在的任务的状态是否将一直被系统保持—“true”被保持,
“false”允许系统在某些情况下重置它到它的初始状态。默认值是“false”。
这个属性只对一个任务的根activity有意义。在其他activity是被忽略的。
通常,当用户从HOME屏幕重新选择任务,系统会在某些情况下清理一个任务(移除所有来自于根activity上的栈的activity)。典型地,如果用户在一段时间内还没有访问这个任务,比如30分钟,那么系统就会清理这个任务。
然而,当这个属性是“true”时,用户将总会返回到那个任务的最后一个状态,无论他们如何到达这里。这是有用的,例如,在一个像浏览器这样的app里,有大量的状态(比如打开的多个标签)用户不想要丢弃。
android:clearTaskOnLaunch
每当任务从HOME屏幕重启时,是否所有activity被从任务移除,除了根activity—“true”任务总是被剥离到它的根activity, “false”不会剥离。默认值是“false”。这个属性只对启动一个新任务的activity(根activity)有意义。对于任务里的其他activity是被忽略的。
当这个值是“true”时,每次用户再次启动任务时,他们都会被带到这个任务的根activity里,无论它们最后在任务里做了什么,并且无论他们用back键或H