參考鏈接為:Android中四種啟動(dòng)模式,最容易理解的小白教程 - 簡(jiǎn)書、android 啟動(dòng)模式應(yīng)用場(chǎng)景 - 簡(jiǎn)書
簡(jiǎn)述Android中的四種啟動(dòng)模式及適用場(chǎng)景
Android中的四大啟動(dòng)模式分別為:standard ,singleTop烟瞧,singleTask溃卡,singleInstance
第一種:standard(默認(rèn))
????關(guān)于這種模式西疤,大家都知道烂翰,就是Android默認(rèn)的啟動(dòng)模式,就是不顯示指定蚤氏,就是這種模式甘耿。
? ? 特點(diǎn):standard模式下,會(huì)不斷地新建activity實(shí)例竿滨,都放入同一個(gè)task中佳恬,即每次轉(zhuǎn)到到該Activity就會(huì)創(chuàng)建一個(gè)本activity的實(shí)例
? ? 應(yīng)用場(chǎng)景:該模式為默認(rèn)模式,適用于大多數(shù)應(yīng)用場(chǎng)景于游。
第二種:singleTop
????特點(diǎn):顧名思義毁葱,singleTop,如果當(dāng)前實(shí)例在當(dāng)前的task的棧頂贰剥,則直接復(fù)用倾剿,如果當(dāng)前實(shí)例不再棧頂,則新建實(shí)例蚌成。
? ? 應(yīng)用場(chǎng)景:
????????????通知消息打開的頁(yè)面前痘;
????????????耗時(shí)操作返回頁(yè)面;
????????????登錄頁(yè)面
第三種:singleTask
????特點(diǎn):設(shè)置了singleTask的頁(yè)面担忧,只要是task中有這個(gè)實(shí)例芹缔,就會(huì)一直復(fù)用,而且每次復(fù)用這個(gè)已存在的實(shí)例瓶盛,都會(huì)清空上面的其他實(shí)例最欠,將自己直接提升到棧頂位置示罗,顯示自己
? ?應(yīng)用場(chǎng)景:瀏覽器、微博等頁(yè)面
?????大多數(shù) App 的主頁(yè)芝硬。對(duì)于大部分應(yīng)用蚜点,當(dāng)我們?cè)谥鹘缑纥c(diǎn)擊回退按鈕的時(shí)候都是退出應(yīng)用,那么當(dāng)我們第一次進(jìn)入主界面之后吵取,主界面位于棧底禽额,以后不管我們打開了多少個(gè) Activity,只要我們?cè)俅位氐街鹘缑嫫す伲紤?yīng)該使用將主界面Activity 上所有的 Activity 移除的方式來(lái)讓主界面 Activity 處于棧頂脯倒,而不是往棧頂新加一個(gè)主界面 Activity 的實(shí)例,通過(guò)這種方式能夠保證退出應(yīng)用時(shí)所有的 Activity 都能被銷毀捺氢。
第四種:singleInstance
? ? 特點(diǎn):設(shè)置了singleInstance的頁(yè)面藻丢,初始時(shí)都是新建一個(gè)task棧給這個(gè)頁(yè)面,然后后面一直復(fù)用這個(gè)棧內(nèi)的頁(yè)面摄乒。注意悠反,只有這種模式會(huì)新建一個(gè)棧給初始化的頁(yè)面。最后返回的規(guī)律是馍佑,先把本頁(yè)面所在的棧都出完斋否,然后再?gòu)棾鱿乱粋€(gè)棧的每個(gè)頁(yè)面。
? ? 應(yīng)用場(chǎng)景:呼叫來(lái)電界面拭荤。
1.以singleInstance模式啟動(dòng)的Activity具有全局唯一性茵臭,即整個(gè)系統(tǒng)中只會(huì)存在一個(gè)這樣的實(shí)例;
2.以singleInstance模式啟動(dòng)的Activity在整個(gè)系統(tǒng)中是單例的舅世,如果在啟動(dòng)這樣的Activiyt時(shí)旦委,已經(jīng)存在了一個(gè)實(shí)例,那么會(huì)把它所在的任務(wù)調(diào)度到前臺(tái)雏亚,重用這個(gè)實(shí)例缨硝;
3.以singleInstance模式啟動(dòng)的Activity具有獨(dú)占性,即它會(huì)獨(dú)自占用一個(gè)任務(wù)罢低,被他開啟的任何activity都會(huì)運(yùn)行在其他任務(wù)中查辩;
4.被 singleInstance 模式的Activity開啟的其他activity,能夠在新的任務(wù)中啟動(dòng)网持,但不一定開啟新的任務(wù)宜肉,也可能在已有的一個(gè)任務(wù)中開啟。