二 、 activity啟動模式
阿新 • • 發佈:2019-02-02
啟動模式有四種:standard、singleTop、singleTask、singleInstance
設定方式:在AndroidManifest.xml 中通過給<activity> 標籤指定android:launchMode 這個屬性選擇啟動模式
1.standard :activity的預設啟動模式,每一個新啟動的activity都會在棧頂
舉例: A》B》C 當我們從C依次按下返回鍵 C》B》A 先入後出
2.singleTop 在啟動活動時候,如果發現返回棧的棧頂已經是該活動,則認為可以直接用這個活動,不用再建立新的活動例項
舉例:(1) A》A》A 此時如果按返回鍵 直接finish()返回之前的活動,或者退出程式;
(2)A》B》C 此時啟動A,因為A沒有在棧頂,需要從新生成一個A的例項,變成A》B》C》A。依次按返回鍵 A》C》B》A
singleTop 可以解決重複建立棧頂活動問題
3.singleTask :每次啟動該活動時候系統首先在返回棧中檢查是否存在該活動的實力,如果發現已經存在則直接使用該例項,並把這個活動之上的所有活動統統出棧,如果沒有發現就會建立一個新的活動例項。
舉例:A》B 這時候我們在B中從新啟動一個A。 但是執行的方法卻是B的onDestory() 、A的onRestart();
4.singleInstance:會啟動一個新的活動返回棧
舉例:在返回棧1中的A 啟動返回棧2中的B,此時B中啟動返回棧中的C,此時如果C按返回鍵,返回的直接是A,再次按返回鍵,是B,再按返回鍵才是退出
A》B》C C》A》B