android:allowTaskReparenting(clearTaskOnLaunch…)

來源:互聯網
上載者:User

轉載: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中保留,因此,使用者不能返回它。比如啟用介面的就可以借用這個。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.