FLAG_ACTIVITY_CLEAR_TOP
如果本來?xiàng)V杏械量茫颓宄羯厦娴牡辔H绫緛硎茿BCD 缘挽,添加B瞄崇。則變成AB
FLAG_ACTIVITY_NEW_TASK
?壕曼?
仍不是很清楚苏研。
引用
cite{http://blog.csdn.net/berber78/article/details/7278408
2.FLAG_ACTIVITY_NEW_TASK:例如現(xiàn)在棧1的情況是:A B C。C通過intent跳轉(zhuǎn)到D腮郊,并且這個(gè)intent添加了FLAG_ACTIVITY_NEW_TASK標(biāo)記摹蘑,如果D這個(gè)Activity在Manifest.xml中的聲明中添加了Task affinity,系統(tǒng)首先會(huì)查找有沒有和D的Task affinity相同的task棧存在轧飞,如果有存在衅鹿,將D壓入那個(gè)棧,如果不存在則會(huì)新建一個(gè)D的affinity的棧將其壓入过咬。如果D的Task affinity默認(rèn)沒有設(shè)置大渤,則會(huì)把其壓入棧1,變成:A B C D掸绞,這樣就和不加FLAG_ACTIVITY_NEW_TASK標(biāo)記效果是一樣的了泵三。注意如果試圖從非activity的非正常途徑啟動(dòng)一個(gè)activity(例見下文“intent.setFlags()方法中參數(shù)的用例”),比如從一個(gè)service中啟動(dòng)一個(gè)activity,則intent比如要添加FLAG_ACTIVITY_NEW_TASK標(biāo)記(編者按:activity要存在于activity的棧中烫幕,而非activity的途徑啟動(dòng)activity時(shí)必然不存在一個(gè)activity的棧俺抽,所以要新起一個(gè)棧裝入啟動(dòng)的activity)。簡而言之较曼,跳轉(zhuǎn)到的activity根據(jù)情況凌埂,可能壓在一個(gè)新建的棧中。
}
FLAG_ACTIVITY_NO_HISTORY
不入棧
FLAG_ACTIVITY_SINGLE_TOP:和Activity的Launch mode的singleTop類似诗芜。如果某個(gè)intent添加了這個(gè)標(biāo)志瞳抓,并且這個(gè)intent的目標(biāo)activity就是棧頂?shù)腶ctivity,那
么將不會(huì)新建一個(gè)實(shí)例壓入棧中
android activity的模式
<activity
android:name="com.lxXxxxyActivity"
android:launchMode="singleInstance" >
</activity>
standard:每次調(diào)用startActivity()啟動(dòng)時(shí)都會(huì)創(chuàng)建一個(gè)新的Activity放在棧頂
注:默認(rèn)都是這個(gè)模式
singleTop:啟動(dòng)Activity時(shí)伏恐,指定Activity不在棧頂就創(chuàng)建孩哑,如在棧頂,則不再創(chuàng)建
注:不會(huì)出現(xiàn)兩個(gè)相同的Activity相鄰
singleTask:如果啟動(dòng)的Activity不存在就創(chuàng)建Activity翠桦,如果存在直接跳轉(zhuǎn)到指定的Activity所在位置
注:在其上面的Activity會(huì)被移出棧,也就是一個(gè)棧中不能有重復(fù)的Activity
singleInstance:如果啟動(dòng)的Activity不存在就創(chuàng)建一個(gè)Activity同時(shí)創(chuàng)建一個(gè)棧横蜒,如果存在就將指定的Activity存在的棧移動(dòng)到棧頂
注:表示這個(gè)Activity只能存在于一個(gè)獨(dú)立的任務(wù)棧中,同應(yīng)用的其它Activity與其無關(guān).