android啟動模式及使用場景
阿新 • • 發佈:2018-12-17
- standard --預設的標準啟動模式
啟動多少次就會有多少個例項被壓到棧中,預設就是標準的啟動模式
應用場景: 預設的應用場景
- singleTop ---單一頂部模式
如果要啟動的activity已經存在了棧頂--就是當前顯示的就是它本身自己,這個時候就不會再啟動一個新的介面。只要不是在棧頂,那麼特點與標準的啟動模式一樣。
應用場景: 一般是為了避免出現一些奇怪的使用者體驗。 啟動100次簡訊編寫介面。
- singleTask --單一任務模式
設定了這種啟動模式的介面,在棧中只會存在一個例項,如果要啟動的介面已經存在過例項,那麼將直接複用該例項,並且把該例項與棧頂之間的其他例項物件全部移除掉。相當於是它位於棧頂。
如果位於棧頂,那麼實際上就是與singleTop沒什麼區別。
應用場景: 如果一個介面極其的消耗記憶體CPU的開銷,那麼就應該做場singleTask的啟動模式
瀏覽器的 BrowserActivity
- singleInstance --單一例項模式
如果哪一個activity設定了這種啟動模式,那麼只要一啟動,就會把這個activity的例項放到一個獨立的棧中,裡面有且只有它自己一個例項, 以後如果還啟動這個activity,將不會建立新的例項,而是把它所在的棧移動到最前面顯示給使用者看
一個應用可以存在多個任務棧,如果有多個任務棧,要切換顯示介面,實際上就是切換任務棧的先後順序。
應用場景: 如果一個介面在單位時間內開啟的頻率非常的高,一天可能要開啟幾百次,甚至幾千、幾萬次。那麼這個介面應該做成singleInstance 來電的介面和 緊急呼叫的介面