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 文件中配置

