standard:默認(rèn)模式
當(dāng)通過這種模式來啟動Activity時柄沮,Activity會創(chuàng)建一個新的實(shí)例并加入當(dāng)前Task棧中亏娜。如多次使用該模式啟動同一個Activity拭宁,那么Task棧中會有多個Activity實(shí)例聚假。
singleTop:Task棧頂單例模式
當(dāng)通過這種模式來啟動Activity時碌廓,如果發(fā)現(xiàn)有對應(yīng)的Activity實(shí)例正位于棧頂敬锐,則重復(fù)利用背传,不再生成新的實(shí)例。
如果在對應(yīng)的Task棧中有對應(yīng)的Activity實(shí)例台夺,但不在Task棧頂径玖,那么就會生成一個新的Activity實(shí)例,并置于ask棧頂颤介。
singleTask: Task內(nèi)單例模式
當(dāng)通過這種模式來啟動Activity時梳星,
*1.如果將要啟動的Activity不存在,那么系統(tǒng)將會創(chuàng)建該實(shí)例,并將其加入Task棧頂
*2.如果將要啟動的Activity已存在,且存在棧頂,那么此時不會創(chuàng)建新的實(shí)例,Task棧也不會改變滚朵。
*3.如果將要啟動的Activity存在但是沒有位于Task棧頂冤灾,那么將會把Task棧中置于該Activity的以上的其他實(shí)例全部從Task棧中移除,從而使得該Activity位于Task棧頂辕近。
singleInstance: 全局單例模式
當(dāng)通過這種模式來啟動Activity時韵吨,無論從哪個Task中啟動目標(biāo)Activity,只會創(chuàng)建一個目標(biāo)Activity實(shí)例且會用一個全新的Task棧來裝載該Activity實(shí)例.
*1.如果將要啟動的Activity不存在,那么會先創(chuàng)建一個新的Task棧,再創(chuàng)建一個該Activity的實(shí)例移宅,并置于Task棧頂归粉。
*2.如果將要啟動的Activity已存在,那么無論它位于哪個應(yīng)用程序,哪個Task棧中漏峰,都會把該Activity所在的Task棧切換到前臺糠悼,從而使該Activity顯示出來。