怎樣才能明白Android四大啓動模式?幾張圖就ok!

前言

CVTE面試的時候答的最爛的一個題目了。廢話不多說,因爲只要學過Android都應該知道四個啓動模式:standardsingleTopsingleTasksingleInstance

思維導圖

standard、singleTop、singleTask針對的任務棧都是當前對應的app進程的,而singleInstance指向整個系統。

standard — 標準模式

Activity的默認啓動方式。

  • 特徵:每次啓動一個Activity都會創建一個實例。
  • 應用場景:默認情況。

singleTop — 棧頂複用

  • 特徵:如果在棧頂,就不在創建實例。反之則創建。
  • 應用場景:當前要跳轉的頁面已經在棧頂時,比如說消息通知跳轉

singleTask — 棧內複用

  • 特徵:如果棧內存在,就將後入棧的實例全部彈出
  • 應用場景:有一個專用主頁面作爲基礎的app,這樣的app現在市面上也非常普遍存在,就比如一個Activity中嵌入ViewPager+BottomNavigationBar製作成的一個主頁面一樣,ViewPager中嵌入了很多的Fragment,這個時候如果是standardsingleTop的形式,很容易讓應用卡頓。

注意點:

  • 如果其他App進程開啓了Activity1,這個時候會創建新的任務棧

  • 如果以該啓動模式啓動的Activity1已經活動在後臺的一個任務棧中,那麼啓動後,後臺任務棧會一起切換到前臺。

singleInstance — 全局唯一

跟前三種啓動模式不同,他並不要求實例在同一個任務棧

  • 特徵:系統中只會有一個實例。
  • 應用場景:系統內部的應用,比如電話、短信等功能,通過Intent進行傳播時,固定的就會調用這些系統自帶的應用,在自己的應用中一般比較少使用。

最後

現在,幾張圖就可以輕鬆明白了!分享不易,大家可以關注我點個贊支持一下!
還有更多的學習內容已經上傳到了我的GitHub,附上我的鏈接:https://github.com/Meng997998/AndroidJX

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