Activity的4種啟動模式

2021-07-29 09:19:12 字數 1477 閱讀 9286

1.standard模式

standard是activity預設的啟動模式,在不指定activity啟動模式的情況下,所有activity使用的都是standard模式。因此,前面是用的activity都是standard啟動模式。

在standard模式下,每當啟動乙個新的activity,它就會進入任務棧,並處於占地的位置,對於使用standard模式的activity,系統不會判斷該activity在棧中是否存在,每次啟動都會建立乙個新的例項。

如圖所示:

2.singletop模式

singletop模式與standard模式類似,不同的是,當自動的activity已經位於棧頂時,則直接使用它不建立新的例項。如果啟動的activity沒有位於棧頂時,則建立乙個新的例項位於棧頂。

如圖所示:

3singletask模式

如果希望activity在整個應用程式中只存在乙個例項,可以使用singletask模式,當activity的啟動模式指定為singletask,每次啟動該activity時,系統會首先檢查棧中是否存在該activity的例項,如果發現已經存在則直接使用該例項,並將當前的activity之上的所有activity出戰,如果沒有發現則建立乙個新的例項。

如圖所示:

從圖中可以看出,當再次啟動activity02時,並沒有建立新的例項,而是將activity0例項移除,復用activity02例項。

4.singleinstance模式

在程式開發中,如果需要activity在整個系統中都只有乙個例項,這是就需要用到singleinstance模式。不同於上述三種模式,指定為singleinstance模式的activity會啟動新的任務棧來管理這個activity。

singleinstance模式載入activity時,無論從哪個任務棧中啟動該activity,只會建立乙個activity例項,並且會使用乙個全新的任務棧來裝載該activity例項。而採用這種模式啟動會分為兩種情況:

第一:如果要啟動的activity不存在,在=系統會先建立乙個新的任務棧,在建立該activity的例項,並把該activity加入棧頂。

如圖所示:

第二:如果要啟動的activity已經存在,無論位於哪個應用程式或者哪個任務棧中,系統都會把該activity所在的任務棧轉到前台。從而使該activity顯示出來。

好了,這就是activity中4種啟動方法,同學們可根據具體情況來選擇不同的啟動方法。

Activity4種啟動模式

standad模式是activity預設的啟動方式,在不進行顯示指定的情況下,所有activity都會以這種方式啟動。intent intent new intent this,firstactivity.class startactivity intent 以這種模式啟動的activity 每次都...

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