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...