Activity是由任務(wù)棧管理的,每啟動(dòng)一個(gè)Activity,就會(huì)被放入棧中,按返回鍵扔罪,就會(huì)從棧頂移除一個(gè)Activity。
啟動(dòng)模式在mainfest文件中的Activity的android:launchMode屬性里設(shè)置
android:taskAffinity 給任務(wù)棧設(shè)置名稱桶雀,不設(shè)置的話默認(rèn)為所在的包名
standard:標(biāo)準(zhǔn)模式矿酵,默認(rèn)
不管這個(gè)Activity之前有沒(méi)有啟動(dòng)/創(chuàng)建過(guò),只要啟動(dòng)矗积,就創(chuàng)建一個(gè)新的全肮。hashcode值改變。singleTop:Task棧頂復(fù)用模式
要啟動(dòng)的Activity在目標(biāo)棧的棧頂漠魏,不會(huì)創(chuàng)建新的Activity倔矾,會(huì)復(fù)用這個(gè)棧頂?shù)腁ctivity妄均;
并且其onNewIntent()方法會(huì)被調(diào)用柱锹;
如果不在棧頂,那么重新創(chuàng)建一個(gè)新的實(shí)例丰包。
singleTask:Task棧內(nèi)復(fù)用模式
在同一個(gè)任務(wù)棧中禁熏,要啟動(dòng)的目標(biāo)Activity已經(jīng)在棧中,則會(huì)復(fù)用該Activity邑彪,并調(diào)用其onNewIntent()方法瞧毙,并且該Activity上面的Activity會(huì)被清除;如果棧中沒(méi)有寄症,則創(chuàng)建新的實(shí)例宙彪。singleInstance: 全局單例模式
不管在哪個(gè)棧里面,在所有棧里面有巧,只要有這個(gè)Activity就可以復(fù)用
沒(méi)有給棧起名字時(shí)释漆,默認(rèn)的棧名為Activity所在的包名,