Android 四種LaunchMode
1.standard 模式
2.singleTop 模式
3.singleTask 模式
4.singleInstance 模式
各自的使用場(chǎng)景:
standard 模式
這是默認(rèn)模式麻养,每次激活A(yù)ctivity時(shí)都會(huì)創(chuàng)建Activity實(shí)例,并放入任務(wù)棧中童漩。使用場(chǎng)景:大多數(shù)Activity苛让。
singleTop 模式
如果在任務(wù)的棧頂正好存在該Activity的實(shí)例,就重用該實(shí)例( 會(huì)調(diào)用實(shí)例的 onNewIntent() )湿诊,否則就會(huì)創(chuàng)建新的實(shí)例并放入棧頂狱杰,即使棧中已經(jīng)存在該Activity的實(shí)例,只要不在棧頂厅须,都會(huì)創(chuàng)建新的實(shí)例仿畸。使用場(chǎng)景如新聞?lì)惢蛘唛喿x類App的內(nèi)容頁(yè)面。
singleTask 模式
如果在棧中已經(jīng)有該Activity的實(shí)例,就重用該實(shí)例(會(huì)調(diào)用實(shí)例的 onNewIntent() )错沽。重用時(shí)簿晓,會(huì)讓該實(shí)例回到棧頂,因此在它上面的實(shí)例將會(huì)被移出棧千埃。如果棧中不存在該實(shí)例憔儿,將會(huì)創(chuàng)建新的實(shí)例放入棧中。使用場(chǎng)景如瀏覽器的主界面放可。不管從多少個(gè)應(yīng)用啟動(dòng)瀏覽器谒臼,只會(huì)啟動(dòng)主界面一次,其余情況都會(huì)走onNewIntent耀里,并且會(huì)清空主界面上面的其他頁(yè)面蜈缤。
singleInstance 模式
在一個(gè)新棧中創(chuàng)建該Activity的實(shí)例,并讓多個(gè)應(yīng)用共享該棧中的該Activity實(shí)例冯挎。一旦該模式的Activity實(shí)例已經(jīng)存在于某個(gè)棧中底哥,任何應(yīng)用再激活該Activity時(shí)都會(huì)重用該棧中的實(shí)例( 會(huì)調(diào)用實(shí)例的 onNewIntent() )。其效果相當(dāng)于多個(gè)應(yīng)用共享一個(gè)應(yīng)用房官,不管誰(shuí)激活該 Activity 都會(huì)進(jìn)入同一個(gè)應(yīng)用中趾徽。使用場(chǎng)景如鬧鈴提醒,將鬧鈴提醒與鬧鈴設(shè)置分離易阳。singleInstance不要用于中間頁(yè)面附较,如果用于中間頁(yè)面,跳轉(zhuǎn)會(huì)有問(wèn)題潦俺,比如:A -> B (singleInstance) -> C拒课,完全退出后,在此啟動(dòng)事示,首先打開的是B早像。