Android-Activity四種啟動模式


Activity四種啟動模式:

(一)、基本描述
  1. standard:標准模式:如果在mainfest中不設置就默認standard;standard就是新建一個Activity就在棧中新建一個activity實例;
  2. singleTop:棧頂復用模式:與standard相比棧頂復用可以有效減少activity重復創建對資源的消耗,但是這要根據具體情況而定,不能一概而論;
  3. singleTask:棧內單例模式,棧內只有一個activity實例,棧內已存activity實例,在其他activity中start這個activity,Android直接把這個實例上面其他activity實例踢出棧GC掉;
  4. singleInstance :堆內單例:整個手機操作系統里面只有一個實例存在就是內存單例;
(二)、場景設置

Activity的啟動模式的應用的設置是和它的開發場景有關系的,在APP中打開新的Activity的基本上分為兩種情況:

  1. 目標Activity是本應用中的Activity,即它的啟動模式是可以直接在fanifest中配置或者默認為standard,任務棧也可以自己隨意設置;
  2. 目標Activity是第三方APP中的Activity,這個時候就需要先考慮打開新Activity的是和自己APP放在同一任務棧中還是新的task中【這個是很重要的因為在Android的機制中:同一個任務棧中的activity的生命周期是和這個task相關聯的[具體實例見下文]】,然后考慮Activity的啟動模式; 所以Android提供了優先級更高的設置方式在Intent.setFlags(int flags),通過這setFlags就可以為打開第三方的APP中Activity設置任務棧和啟動模式了,具體設置就自己去看源碼了。

二、Activity四種啟動模式常見使用場景:

LauchMode Instance
standard mainfest中沒有配置就默認標准模式
singleTop 登錄頁面、WXPayEntryActivity、WXEntryActivity 、推送通知欄
singleTask 程序模塊邏輯入口:主頁面(Fragment的containerActivity)、WebView頁面、掃一掃頁面
singleInstance 系統Launcher、鎖屏鍵、來電顯示等系統應用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM