Android 攻城獅丨Activity 四種啟動(dòng)模式及應(yīng)用場(chǎng)景

1. Activity 啟動(dòng)模式 及 區(qū)別

? ? Standare:默認(rèn)啟動(dòng)模式,每次都會(huì)在虛擬棧頂創(chuàng)建一個(gè)實(shí)例。

????SingleTop:檢查該 Activity 的實(shí)例是否位于棧頂,位于棧頂時(shí)復(fù)用,非棧頂時(shí)創(chuàng)建新實(shí)例。

? ? SingleTask:該 Activity 在整個(gè)應(yīng)用中只存在一個(gè)實(shí)例,啟動(dòng)此 Activity 時(shí)會(huì)檢查虛擬棧中是否存在它的實(shí)例,如果存在直接復(fù)用,并把當(dāng)前Activity之上所有實(shí)例全部出棧。

? ? SingleInstance:具備 singleTask 模式的所有特性。該模式的 Activity 會(huì)啟動(dòng)一個(gè)新的任務(wù)棧來管理 Activity 實(shí)例,并且該實(shí)例在整個(gè)系統(tǒng)中只有一個(gè)。無論從那個(gè)任務(wù)棧中啟動(dòng)該 Activity,都會(huì)是該 Activity 所在的任務(wù)棧轉(zhuǎn)移到前臺(tái),從而使Activity顯示。主要作用是為了在不同程序中共享一個(gè) Activity 實(shí)例。


2. Activity 不同啟動(dòng)模式常見應(yīng)用場(chǎng)景

????Standare:默認(rèn),無需設(shè)置

????SingleTop:APP接收到多條推送消息,點(diǎn)開不同消息,均由同一實(shí)例展示。

????SingleTask:APP的主頁,無論哪種業(yè)務(wù)場(chǎng)景下再次回到此頁,都不應(yīng)保留之上Activity。

????SingleInstance:如APP經(jīng)常調(diào)用的撥打電話、系統(tǒng)通訊錄、地圖類APP 等頁面,不同APP調(diào)用此類Activity 時(shí),首次創(chuàng)建實(shí)例,之后其他APP只能復(fù)用此實(shí)例。


3. 項(xiàng)目中使用方式(可分為動(dòng)態(tài)或靜態(tài)2種)

? ? 1. 動(dòng)態(tài)設(shè)置:代碼中通過 Intent 的 addFlags 方法指定

? ? 2. 靜態(tài)設(shè)置:Manifest.xml 文件中配置



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容