二 Activity的啟動模式以及使用場景

2021-08-21 05:50:04 字數 1311 閱讀 4164

1.任務棧的介紹

(1)程式一開啟就會建立了乙個新的任務棧,當前程式的所有activity都儲存在這個任務棧中。

(2)乙個任務棧包含乙個activity的集合,使用者可以有序的和其中的activity進行互動,但只有棧頂的activity才可以和使用者進行互動

(3)任務棧可以移動到後台,並且保留了每乙個activity的狀態,能給使用者有序的列它們的任務,並且不丟失他們狀態資訊

(4)退出程式時,將所有activity清除出棧,程式退出

2.任務棧的缺點

(1)每次開啟乙個頁面就會新增到activity中,程式退出時,需要清除棧中所有activity,任務棧才會被銷毀,造成使用者需要多次返回才能退出體驗差

(2)每次開啟乙個頁面就會新增到activity中,造成資料冗餘,重複資料太多,導致內從溢位

3.任務棧的啟動模式及應用場景

(1)啟動模式(lauchmode)可以決定 :

是否生成新的activity例項,

是否重用已存在的activity例項,

是否和其他activity例項在同乙個task裡

(2)task是乙個具有棧結構的物件,乙個task可以管理多個activity,啟動乙個應用後就對應乙個task

(3)配置啟動模式

a. mainfest設定android.lauchmode=「」

b. startactivity的flag

(4)介紹及使用場景

a. standard  

預設啟動模式,每次都生成新的例項,並位於棧頂

b.singtop

當前activity在棧頂,不生成新的例項

當前activity不在棧頂,生成新的例項。

應用場景:接受通知啟動內容顯示頁面(qq接到訊息彈出activity)

c.singtask

當前activity在棧內,不生成新的例項,彈出其上所有activity

當前activity不在棧內,生成新的例項

應用場景:適合程式入口點(瀏覽器主介面,不管從多少個頁面啟動瀏覽器,指啟動主頁面一次,其餘都走onnewintent)

d.singinstance

啟用新的棧結構,保證不再有其他activity進入

退出時,先清除幕前的棧的所有,然後清除另外的棧

todo

activity 啟動模式

在android的中activity 有4種啟動方式 standard singletop singletask singleinstance 下面就分輕重點講講這些啟動方式。1 standard啟動方式 這種方式也是系統預設的。說的簡單點,我們在使用startactivity 方法的時候,系統就會...

activity啟動模式

1 對於使用standard 模式的活動,系統不會在乎這個活動是否已經在返回棧中存在,每次啟動都會建立該活動的乙個新的例項。例如a啟動a,a再接著啟動a,a繼續啟動a,然後再分別出棧,如圖所示 2 當活動的啟動模式指定為 singletop,在啟動活動時如果發現返回棧的棧頂已經是該活動,則認為可以直...

Activity啟動模式

兩種方式可以定義activity啟動模式 manifest intent intent定義的啟動模式優先於manifest 不管activity執行在乙個新的任務還是與啟動它的activity同樣的任務,返回鍵總是把使用者帶到之前的activity。然而,如果啟動乙個singletask的activ...