幾張圖讓你明白Android四大啓動模式

前言

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

思惟導圖

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

standard — 標準模式

Activity的默認啓動方式。app

standard圖示

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

singleTop — 棧頂複用

singleTop圖示

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

singleTask — 棧內複用

singleTask圖示

  • 特徵:若是棧內存在,就將後入棧的實例所有彈出
  • 應用場景:有一個專用主頁面做爲基礎的app,這樣的app如今市面上也很是廣泛存在,就好比一個Activity中嵌入ViewPager+BottomNavigationBar製做成的一個主頁面同樣,ViewPager中嵌入了不少的Fragment,這個時候若是是standardsingleTop的形式,很容易讓應用卡頓。

注意點:post

  • 若是其餘App進程開啓了Activity1,這個時候會建立新的任務棧學習

  • 若是以該啓動模式啓動的Activity1已經活動在後臺的一個任務棧中,那麼啓動後,後臺任務棧會一塊兒切換到前臺。設計

singleInstance — 全局惟一

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

singleInstance圖示

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

以上就是個人學習成果,若是有什麼我沒有思考到的地方或是文章內存在錯誤,歡迎與我分享。code


相關文章推薦:cdn

聊一聊設計模式(一)-- 六大原則blog

JVM必備基礎知識(一) -- 類的加載機制

手撕AsyncTask

HandlerThread那些事兒

相關文章
相關標籤/搜索