<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"時,用戶將會重新回到上一層的操作,這個是很有用的,例如:一個像瀏覽器的應用程序會留下你上次離開時打開的標籤,而不會刪除。