<activity>元素属性详解
- 语法:<activity android:string = "...."><activity> (其中的string有多种,会在下文介绍)
- 被包含在:<application>
- 可以包含的元素:<intent-filter>,<meta-data>
- 描述:在manifest文件里所有的activity必须被包含在<activity>元素里(这里要注意activity与<activity>是不同的,<activity>只是一个元素,而一个个activity是活动的具体描述),如果在manifest文件里没有定义任何的activity,则不会被系统可见,也就是说永远也不会被运行
- 包含的属性:(也就是上文的string)
- android:allowTeskReparenting=["true" | “false”]
正常情况下,一个Activity启动后,就会在启动它的Task里耗尽他的生命;但是你可以使用这个属性将一个Activity强制的加入到它所关联的Task中,当然要在这个Activity的Task不再显示的时候。
举个例子(官方文档翻译):假设一个E-mail里包含了一个web链接,点击这个web链接就会启动一个Activity,这个Activity本应是在浏览器Task里,但是他现在作为e-mailTask的一部分,如果他被重用到浏览器Task里,那么当浏览器运行到前台时,这个Activity就会被显示,当e-mailTask再一次回到前台时,他就不可见了,这也达到了我们的要求,(大家可以试一下,体验一下)
一个Activity关联对象在taskAffinity属性里定义
- android:alwaysRetainTaskState=["true" | "false"]
正常情况下当用户长时间的没有使用已开启的应用程序的Task时,(例如30分钟),用户再一次的点击这个用程序的图标,系统就会清理这个Task(除了root activity ),但是,但这个属性为"true"时,用户将会重新回到上一层的操作,这个是很有用的,例如:一个像浏览器的应用程序会留下你上次离开时打开的标签,而不会删除。