Activity的四種啟動方式

2021-06-21 06:12:11 字數 1189 閱讀 1059

activity 有四種載入模式

[1] standard 模式

這是預設模式,每次啟用activity時都會建立activity例項,並放入任務棧中。

[2] singletop 模式

如果在任務的棧頂正好存在該activity的例項,就重用該例項( 會呼叫例項的 onnewintent() ),否則就會建立新的例項並放入棧頂,即使棧中已經存在該activity的例項,只要不在棧頂,都會建立新的例項。

[3] singletask 模式

如果在棧中已經有該activity的例項,就重用該例項(會呼叫例項的 onnewintent() )。重用時,會讓該例項回到棧頂,因此在它上面的例項將會被移出棧。如果棧中不存在該例項,將會建立新的例項放入棧中。

只有乙個例項。在同乙個應用程式中啟動他的時候,若activity不存在,則會在當前task建立乙個新的例項,若存在,則會把task中在其之上的其它activity destory掉並呼叫它的onnewintent方法。

如果是在別的應用程式中啟動它,則會新建乙個task,並在該task中啟動這個activity,singletask允許別的activity與其在乙個task中共存,也就是說,如果我在這個singletask的例項中再開啟新的activity,這個新的activity還是會在singletask的例項的task中。

[4] singleinstance 模式

在乙個新棧中建立該activity的例項,並讓多個應用共享該棧中的該activity例項。一旦該模式的activity例項已經存在於某個棧中,任何應用再啟用該activity時都會重用該棧中的例項( 會呼叫例項的 onnewintent() )。其效果相當於多個應用共享乙個應用,不管誰啟用該 activity 都會進入同乙個應用中。

當該模式activity

例項在任務棧中建立後,只要該例項還在任務棧中,即只要啟用的是該型別的

activity

,都會通過呼叫例項的

newinstance()

方法重用該

activity

,此時使用的都是同乙個

activity例項

,它都會處於任務棧的棧頂。此模式一般用於載入較慢的,比較耗效能且不需要每次都重新建立的

activity

Activity四種啟動方式

啟動模式簡單地說就是activity啟動時的策略,在androidmanifest.xml中的標籤的android launchmode屬性設定 啟動模式有4種,分別為standard singletop singletask singleinstance 講解啟動模式之前,有必要先講解一下 任務棧...

Activity 的四種啟動方式

activity 的四種啟動方式 在 android 裡,有4 種activity 的啟動模式,分別為 standard 預設 所有activity在乙個task任務湛中,新建乙個在task中新增乙個 singletop 所有activity在乙個task中,如果新開啟activity和棧頂 act...

Activity的四種啟動方式

第一種 standard 也是預設方式 launchmode standard 使用標準啟動模式每次都會建立乙個新的activity 第二種 singletop 單頂模式 launchmode singletop 使用單頂啟動模式每次都會建立乙個新的activity,除非它 棧 的頂部已經有個一樣的...