Activity四種啟動模式

2021-08-11 04:32:42 字數 1417 閱讀 1865

一、啟動模式介紹

啟動模式簡單地說就是activity啟動時的策略,在androidmanifest.xml中的標籤的android:launchmode屬性設定;

啟動模式有4種,分別為standard、singletop、singletask、singleinstance;

講解啟動模式之前,有必要先講解一下「任務棧」的概念;

任務棧

每個應用都有乙個任務棧,是用來存放activity的,功能類似於函式呼叫的棧,先後順序代表了activity的出現順序;比如activity1-->activity2-->activity3,則任務棧為:

二、啟動模式

(1)standard:每次啟用activity時(startactivity),都建立activity例項,並放入任務棧;

(2)singletop:如果某個activity自己啟用自己,即任務棧棧頂就是該activity,則不需要建立,其餘情況都要建立activity例項;

(3)singletask:如果要啟用的那個activity在任務棧中存在該例項,則不需要建立,只需要把此activity放入棧頂,並把該activity以上的activity例項都pop;

(4)singleinstance:如果應用1的任務棧中建立了mainactivity例項,如果應用2也要啟用mainactivity,則不需要建立,兩應用共享該activity例項;

singtask的應用:

可以用來退出整個應用。

將主activity設為singtask模式,然後在要退出的activity中轉到主activity,然後重寫主activity的onnewintent函式,並在函式中加上一句finish。

附:退出單個activity方法:

呼叫finish

殺死該程序:killprocess(process.mid)

終止正在執行的虛擬機器:system.exit()

退出整個應用:

製造拋異常導致整個程式退出

將所有的activity放入到乙個list中,然後在需要退出的時候,將所有的activity,finish掉

通過廣播來完成退出功能

Activity四種啟動模式

launchmode在多個activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的activity例項,是否重用已存在的activity例項,是否和其他activity例項公用乙個task裡。這裡簡單介紹一下task的概念,task是乙個具有棧結構的物件,乙個task可以管理多個acti...

Activity四種啟動模式

activity的啟動模式可以通過androidmanifest.xml檔案中的元素的屬性來指定,一共有4中模式 android name activitymain android launchmode singletask 1 standard 2 singletop 3 singletask 4...

Activity 四種啟動模式

activity有四種載入模式 standard 預設 singletop,singletask和 singleinstance。以下逐一舉例說明他們的區別 一 standard activity的預設載入方法,即使某個activity在task棧中已經存在,另乙個activity通過intent跳...