1. 程式人生 > >android任務棧及activity四種啟動模式

android任務棧及activity四種啟動模式

一、android任務棧

棧:先進後出

佇列:先進先出 

任務棧Task中:開啟一個Activity叫進棧 關閉一個activit出棧 

任務棧是用來維護Activity的、是用來維護使用者的操作體驗

我們操作的Activity永遠是任務棧的棧頂的Activity

說應用程式退出了 實際上任務棧清空,程序並沒有結束

二、activity四種啟動模式

①standard標準啟動模式

standard標準啟動模式在activity的配置檔案中設定android:launchMode="standard"

每開啟一個activity就會完成一次進棧,每關閉一個activity就會完成一次出棧。

②singletop啟動模式

singletop單一頂部模式在activity的配置檔案中設定android:launchMode="singleTop"

如果任務棧的棧頂存在這個要開啟的activity,不會重新的建立activity,而是複用已經存在的activity。保證棧頂如果存在,不會重複建立。

應用場景:瀏覽器的歷史書籤頁

singleTask單一任務棧啟動模式

singleTask單一任務棧模式在activity的配置檔案中設定android:launchMode="singleTask"

在當前任務棧裡面只能有一個例項存在,當開啟activity的時候,就去檢查在任務棧裡面是否有例項已經存在,如果有例項存在就複用這個已經存在的activity,並且把這個activity上面的所有的別的activity都清空,複用這個已經存在的activity,從而保證整個任務棧裡面只有一個例項存在。

如果一個activity的建立需要佔用大量的系統資源(cpu,記憶體)一般配置這個activity為singletask的啟動模式。

應用場景:瀏覽器的activity

singleInstance單例項啟動模式

singleInstance啟動模式非常特殊, activity會執行在自己的任務棧裡面,並且這個任務棧裡面只有一個例項存在

如果你要保證一個activity在整個手機作業系統裡面只有一個例項存在,使用singleInstance。

應用場景: 來電頁面