Activity的啟動(dòng)模式(LaunchMode):
1.standrad模式,標(biāo)準(zhǔn)模式。系統(tǒng)默認(rèn)的啟動(dòng)模式。直接將Activity加入啟動(dòng)者的任務(wù)棧。
2.singleTop模式,棧頂復(fù)用模式。如果棧內(nèi)存在ABCD,再去啟動(dòng)一個(gè)D,棧內(nèi)仍為ABCD。
3.singleTask模式,棧內(nèi)復(fù)用模式,一種單實(shí)例模式。當(dāng)棧內(nèi)為ADBC時(shí),以此模式啟動(dòng)一個(gè)D,此時(shí)BC將出棧,棧內(nèi)為AD。
4.singleInstance模式,單實(shí)例模式,加強(qiáng)版的SingleTask。在SingleTask的基礎(chǔ)上,一個(gè)Activity只能有一個(gè)任務(wù)棧。
TaskAffinity(任務(wù)相關(guān)性)標(biāo)示了一個(gè)Activity所需要的任務(wù)棧的名字。默認(rèn)情況下,所有Activity所需的任務(wù)棧的名字為應(yīng)用的包名。
Activity常用的Flags:
FLAG_ACTIVITY_NEW_TASK:為Activity指定“singleTask”啟動(dòng)模式,其效果和在XML中指定相同。
FLAG_ACTIVITY_SINGLE_TOP:為Activity指定“singleTop”啟動(dòng)模式,其效果和在XML中指定相同。
FLAG_ACTIVITY_CLEAR_TOP:具有此標(biāo)記位的Activity,當(dāng)它啟動(dòng)時(shí),在同一個(gè)任務(wù)棧中所有位于它上面的Activity都要出棧。一般和singleTask啟動(dòng)模式一起出現(xiàn)。
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:具有這個(gè)標(biāo)記的Activity不會(huì)出現(xiàn)在歷史Activity的列表中,當(dāng)某些情況下,我們不希望用戶通過歷史列表回到我們的Activity的時(shí)候這個(gè)標(biāo)記比較有用。它等同于在XML中指定Activity的屬性android:excludeFromRecents="true"。