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