Activity的四種載入方式

2021-07-12 03:56:11 字數 1064 閱讀 9503

配置activity時可指定android:launchmode屬性,該屬性用於配置改activity的啟動模式。該屬性支援以下4個屬性值。

standard:標準模式,預設的載入模式

singletop:task棧頂單例模式

singletask:task內單例模式

singleinstance:全域性單例模式

android採用task來管理多個activity,當我們啟動乙個應用時,android會為之建立乙個task,然後啟動這個應用的入口activity(即intent-filter中配置main和launcher的activity)。

1、standard模式

每次通過這種模式啟動activity時,android總會為目標建立乙個新的例項,並將該activity新增到當前task棧中,這彙總模式不會啟動新的task,新的activity將會被新增到原因有的task中。

2、singletop模式

這中模式和standard有點相似,但有一點不同:當將要啟動的activity已經位於task棧頂時,系統不會重新建立目標activity例項,而是直接復用已有的activy例項。

如果要將啟動的目標activy沒有位於棧頂,此時系統會重新建立目標activity例項,並將它載入到task棧頂,此時與standard模式完全相同。

3、singletask模式

採用這種載入模式的activity在同乙個task內只有乙個例項,啟動目標activity時,可分為如下三種情況。

(1)、如果將要啟動的目標activity不存在,系統將會建立目標activity例項,並將它加入到task棧頂。

(2)、如果將要啟動的activity已經位於task棧頂,此時與singletop模式相同。

(3)、如果將要啟動的activity已經存在,但沒有位於task棧頂,系統會把位於該activity上面所有的activy移出task棧,從而使目標activity轉入棧頂。

4、singleinstance模式

系統保證無論哪個task中啟動目標activity,只會建立乙個目標activity例項,並會使用乙個全新的task棧來載入該activity例項。

Activity的四種載入方式

standard模式 acitivity為目標activity 建立的新例項會放在當前胡task中,而不會重新生成乙個task。也就是說他們胡task的id總是相同。例如 intent intent new intent aa.this,aa.class startactivity intent s...

Activity的四種載入模式

activity之間的跳轉,或者說載入乙個新的activity,一般對於開發者來說,都不是乙個太難的問題。activity的載入還分為四種不同載入模式,靈活的使用合適的載入模式,可以避免產生大量的重複的activity,從而優化效能,減少系統資源消耗。四種載入模式具體為 這些啟動模式可以androi...

Activity的四種載入模式

activity有四種載入模式 1 standard 標準 預設 模式 當通過這種模式來啟動activity時,總會為目標activity建立乙個新的例項,並將該activity新增到當前task棧中.注意,這種方式不會啟動新的task,只是將新的activity新增到原有的task 2 singl...