轉載:http://blog.csdn.net/caocaozhuce/article/details/8542894
android:allowTaskReparenting:
用來標記Activity能否從啟動的Task移動到有著affinity的Task(當這個Task進入到前台時),“true”,表示能移動,“false”,表示它必須呆在啟動時呆在的那個Task裡。 如果這個特性沒有被設定,設定到<application>元素上的allowTaskReparenting特性的值會應用到Activity上。預設值為“false”。
一般來說,當Activity啟動後,它就與啟動它的Task關聯,並且在那裡耗盡它的整個生命週期。噹噹前的Task不再顯示時,你可以使用這個特性來強制Activity移動到有著affinity的Task中。典型用法是:把一個應用程式的Activity移到另一個應用程式的主Task中。
例如,如果 email中包含一個web頁的連結,點擊它就會啟動一個Activity來顯示這個頁面。這個Activity是由Browser應用程式定義的,但是,現在它作為email Task的一部分。如果它重新宿主到Browser Task裡,當Browser下一次進入到前台時,它就能被看見,並且,當email Task再次進入前台時,就看不到它了。
Actvity的affinity是由taskAffinity特性定義的。Task的affinity是通過讀取根Activity的affinity決定。因此,根Activity總是位於相同affinity的Task裡。由於啟動模式為“singleTask”和“singleInstance”的Activity只能位於Task的底部,因此,重新宿主只能限於“standard”和“singleTop”模式。
android:alwaysRetainTaskState :
用來標記Activity所在的Task的狀態是否總是由系統來保持。 “true”,表示總是;“false”,表示在某種情形下允許系統復原Task到它的初始化狀態。預設值是“false”。這個特性只針對Task的根Activity有意義;對其它Activity來說,忽略之。
一般來說,特定的情形如當使用者從主畫面重新選擇這個Task時,系統會對這個Task進行清理(從stack中刪除位元於根Activity之上的所有Activivity)。典型的情況,當使用者有一段時間沒有訪問這個Task時也會這麼做,例如30分鐘。 然而,當這個特性設為“true”時,使用者總是能回到這個Task的最新狀態,無論他們是如何啟動的。這非常有用,例如,像Browser應用程式,這裡有很多的狀態(例如多個開啟的Tab),使用者不想丟失這些狀態。
android:clearTaskOnLaunch :
用來標記是否從Task中清除所有的Activity,除了根Activity外(每當從主畫面重新啟動時)“true”,表示總是清除至它的根Activity,“false”表示不。預設值是“false”。這個特性只對啟動一個新的Task的Activity(根Activity)有意義;對Task中其它的Activity忽略。
當這個值為“true”,每次使用者重新啟動這個Task時,都會進入到它的根Activity中,不管這個Task最後在做些什麼,也不管使用者是使用BACK還是HOME離開的。當這個值為“false”時,可能會在一些情形下(參考alwaysRetainTaskState特性)清除Task的Activity,但不總是。
假設,某人從主畫面啟動了Activity P,並從那裡遷移至Activity Q。接下來使用者按下HOME,然後返回Activity P。一般,使用者可能見到的是Activity Q,因為它是P的Task中最後工作的內容。然而,如果P設定這個特性為“true”,當使用者按下HOME並使這個Task再次進入前台時,其上的所有的Activity(在這裡是Q)都將被清除。因此,當返回到這個Task時,使用者只能看到P。
如果這個特性和allowTaskReparenting都設定為“true”,那些能重新宿主的Activity會移動到共用affinity的Task中;剩下的Activity都將被拋棄,如上所述。
android:finishOnTaskLaunch:
用來標記當使用者再次啟動它的Task(在主畫面選擇這個Task)時已經存在的Activity執行個體是否要關閉(結束)“true”,表示應該關閉,“false”表示不關閉。預設值是“false”。 如果這個特性和allowTaskReparenting都設定為“true”,這個特性勝出。Activity的affinity忽略。這個Activity不會重新宿主,但是會銷毀。
android:launchMode:
用於指示Activity如何啟動。這裡有四種模式,與Intent對象中的Activity Flags(FLAG_ACTIVITY_*變數)共同作用,來決定Activity如何啟動來處理Intent。它們是:
"standard"
"singleTop"
"singleTask"
"singleInstance"
預設模式是“standard”。
android:noHistory:
用於標記當使用者從Activity上離開並且它在螢幕上不再可見時Activity是否從Activity stack中清除並結束(調用finish()方法)——“true”,表示它應該關閉,“false”,表示不需要。預設值是“false”。“true”值意味著Activity不會留下曆史痕迹。因為它不會在Activity stack的Task中保留,因此,使用者不能返回它。比如啟用介面的就可以借用這個。