元素详解

                                    <activity>元素属性详解

  1. 语法:<activity android:string = "...."><activity> (其中的string有多种,会在下文介绍)
  2. 被包含在:<application>
  3. 可以包含的元素:<intent-filter>,<meta-data>
  4. 描述:在manifest文件里所有的activity必须被包含在<activity>元素里(这里要注意activity与<activity>是不同的,<activity>只是一个元素,而一个个activity是活动的具体描述),如果在manifest文件里没有定义任何的activity,则不会被系统可见,也就是说永远也不会被运行
  5. 包含的属性:(也就是上文的string
  • android:allowTeskReparenting=["true" | “false”]
这个属性决定是否允许一个activity移动到另一个应用的Task里, true表示可以,false表示不可以,如果这个性没有被设置,则会默认的在<application>元素里被设置为false,并应用与activity;

正常情况下,一个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"]
这个属性用来设置Activity所在的Task是否会被系统一直保持下去,"true"表示会,"false"表示不一定会,默认为"false",这个属性只针对在Task里的根Activity,其他的Activity将会被忽略。


正常情况下当用户长时间的没有使用已开启的应用程序的Task时,(例如30分钟),用户再一次的点击这个用程序的图标,系统就会清理这个Task(除了root activity ),但是,但这个属性为"true"时,用户将会重新回到上一层的操作,这个是很有用的,例如:一个像浏览器的应用程序会留下你上次离开时打开的标签,而不会删除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章