Android的四種啓動模式

 對Android的啓動模式不是很瞭解,這裏記錄下簡單的理解內容以便日後查看。

 Androi的四種啓動模式分別爲:standard,singleTop,singleTask,singleInstance。爲Activity指定啓動模式有兩種方法,第一種是通過AndroidManifest.xml中爲Activity指定添加launchMode

wKiom1Zmn1vQl5WUAABHcMTsnXk302.png

 第二種就是通過Intent來設置標誌位來指定Activity的啓動模式,兩者有區別,優先級上是第二種高於第一種。

 standard是系統默認的啓動模式,也就是說設不設置launchMode都是標準模式,每次啓動一個Activity都會重新創建一個新的實例,如有個Activity爲A跳轉本身時,A->A1->A2,都會產生新的界面,當按back鍵時後退順序爲A2->A1->A,依次退出。


 singleTop與設置標記位FLAG_ACTIVITY_SINGLE_TOP效果相同,當該實例位於棧頂時就不再創建同時onNewIntent方法會被回調,在此方法中可以得到回調信息,如Activity A跳轉本身,點擊多次都不再跳轉新的界面,但是當A->B->A1時,A不在棧頂產生新的實例A1,退出時A1->B->A。


 singleTask與設置標記位FLAG_ACTIVITY_NEW_TASK效果相同,與singleTop一樣系統會回調其onNewIntent方法,當跳轉本身時不會再產生新實例,如果已有實例會把其調到棧頂,如果沒有則會創建並壓入棧中,如A->B->C->A,A爲singleTask如果此時退出則直接退到桌面,因在A實例已存在把其調到棧頂時會把棧內A上面的BC全部出棧,如A->B->C,退出時C->B->A。


 singleInstance比較複雜其擁有singleTask的特性又加強了一點,具有此種模式的Activity只能單獨的位於一個棧內。當跳轉本身時也不會再產生新的實例,當A->B->C->B,此時B爲singleInstance模式,退出時爲B->C->A,當A->B->C,退出爲C->A->B,因此時B在一個棧內,A與C在另一個棧內,一個棧內退出後再退另一個棧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章