android Home 之後重新進入 保持應用操作界面

轉載的原地址

**1.android:allowTaskReparenting 這個屬性用來標記一個Activity實例在當前應用退居後臺後,是否能從
啓動它的那個task移動到有共同affinity的task,“true”表示可以移動,“false”表示它必須呆在當前應用的task中,默認值爲false。如果一個這個Activity的元素沒有設定此屬性,設定在上的此屬性會對此Activity起作用。例如在一個應用中要查看一個web頁面,在啓動系統瀏覽器Activity後,這個Activity實例和當前應用處於同一個task,當我們的應用退居後臺之後用戶再次從主選單中啓動應用,此時這個Activity實例將會重新宿主到Browser應用的task內,在我們的應用中將不會再看到這個Activity實例,而如果此時啓動Browser應用,就會發現,第一個界面就是我們剛纔打開的web頁面,證明了這個Activity實例確實是宿主到了Browser應用的task內。

2.android:alwaysRetainTaskState 這個屬性用來標記應用的task是否保持原來的狀態,“true”表示總是保持,“false”表示不能夠保證,默認爲“false”。此屬性只對task的根Activity起作用,其他的Activity都會被忽略。 默認情況下,如果一個應用在後臺呆的太久例如30分鐘,用戶從主選單再次選擇該應用時,系統就會對該應用的task進行清理,除了根Activity,其他Activity都會被清除出棧,但是如果在根Activity中設置了此屬性之後,用戶再次啓動應用時,仍然可以看到上一次操作的界面。 這個屬性對於一些應用非常有用,例如Browser應用程序,有很多狀態,比如打開很多的tab,用戶不想丟失這些狀態,使用這個屬性就極爲恰當。

3.android:clearTaskOnLaunch 這個屬性用來標記是否從task清除除根Activity之外的所有的Activity,“true”表示清除,“false”表示不清除,默認爲“false”。同樣,這個屬性也只對根Activity起作用,其他的Activity都會被忽略。 如果設置了這個屬性爲“true”,每次用戶重新啓動這個應用時,都只會看到根Activity,task中的其他Activity都會被清除出棧。如果我們的應用中引用到了其他應用的Activity,這些Activity設置了allowTaskReparenting屬性爲“true”,則它們會被重新宿主到有共同affinity的task中。 4.android:finishOnTaskLaunch 這個屬性和android:allowReparenting屬性相似,不同之處在於allowReparenting屬性是重新宿主到有共同affinity的task中,而finishOnTaskLaunch屬性是銷燬實例。如果這個屬性和android:allowReparenting都設定爲“true”,則這個屬性好些。**

發佈了69 篇原創文章 · 獲贊 7 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章