雖然是一個(gè)很基礎(chǔ)的知識(shí)點(diǎn)但還是想記錄一下,以盡可能簡(jiǎn)單的語(yǔ)言。
android啟動(dòng)模式launchMode有四種:
standard
標(biāo)準(zhǔn)模式,也是系統(tǒng)默認(rèn)模式。每次啟動(dòng)activity都會(huì)創(chuàng)建一個(gè)新的實(shí)例,無(wú)論這個(gè)實(shí)例是否存在。
singleTop
棧頂復(fù)用模式。當(dāng)即將要啟動(dòng)的activity已經(jīng)位于任務(wù)棧頂,則此activity不會(huì)重新創(chuàng)建,它的onCreat(),onStart()方法也不會(huì)被調(diào)用,這時(shí)候會(huì)回調(diào)的方法是onNewIntent(),我們可以在這個(gè)方法中做一些初始化的操作。如果我們要啟動(dòng)的activity沒(méi)有在任務(wù)棧頂,那么系統(tǒng)會(huì)為我們建一個(gè)新的實(shí)例,這時(shí)候就和standard模式創(chuàng)建activity一樣了。
singleTask
單實(shí)例模式,也叫棧內(nèi)復(fù)用模式。此模式下,某activity在整個(gè)任務(wù)棧中只能存在一個(gè)實(shí)例,即使多次啟動(dòng),也不會(huì)重復(fù)創(chuàng)建實(shí)例,而是onNewIntent()方法被調(diào)用。此模式有一個(gè)clearTop的效果,比如當(dāng)前棧中實(shí)例的順序是ABCD,如果B是singleTask模式,這時(shí)候啟動(dòng)B,則系統(tǒng)會(huì)把B移動(dòng)到棧頂顯示,同時(shí)銷(xiāo)毀CD,只剩AB。
singInstance
單實(shí)例模式。它具有singleTask所有特性,而且有過(guò)之無(wú)不及,這種模式的activity只能單獨(dú)位于一個(gè)任務(wù)棧中。