Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 任務棧及啟動模式

android 任務棧及啟動模式

編輯:關於Android編程

1.一個應用程序一般都是由多個activity組成的。
2.任務棧(task stack)(別名back stack後退棧) 記錄存放用戶開啟的activity的。
3.一個應用程序一被開啟系統就給他分配一個任務棧,當所有的activity都退出的時候,任務棧就清空了。
4.任務棧的id是一個integer的數據類型 自增長的。
5.在android操作系統裡面會存在多個任務棧,一個應用程序一個任務棧。
6.桌面應用和一般的應用程序是一樣的,任務棧的行為也是一樣。
7.默認情況下, 關閉掉一個應用程序,清空了這個應用程序的任務棧。應用程序的進程還會保留。




為什麼要引入任務棧的概念:
windows下 可以通過點擊任務欄 切換任務
android下 長按小房子 切換任務


為了記錄用戶開啟了那些activity,記錄這些activity開啟的先後順序,google引入任務棧(task stack)概念,幫助維護好的用戶體驗。






activity的啟動模式:

在AndroidManifest.xml中對指定Activity配置:

android:launchMode="singleInstance"
>

1. standard 默認標准的啟動模式, 每次startActivity都是創建一個新的activity的實例。
適用於絕大大數情況
2. singleTop 單一頂部,如果要開啟的activity在任務棧的頂部已經存在,就不會創建新的實例,
而是調用 onNewIntent() 方法。
應用場景: 浏覽器書簽。 避免棧頂的activity被重復的創建,解決用戶體驗問題。
3. singletask 單一任務棧 , activity只會在任務棧裡面存在一個實例。如果要激活的activity,在
任務棧裡面已經存在,就不會創建新的activity,而是復用這個已經存在的activity,
調用 onNewIntent() 方法,並且清空這個activity任務棧上面所有的activity
應用場景:浏覽器activity, 整個任務棧只有一個實例,節約內存和cpu的目的
注意: activity還是運行在當前應用程序的任務棧裡面的。不會創建新的任務棧。


4. singleInstance 單態 單例模式
單一實例,整個手機操作系統裡面只有一個實例存在。不同的應用去打開這個activity
共享 公用的同一個activity。
他會運行在自己單獨,獨立的任務棧裡面,並且任務棧裡面只有他一個實例存在。
應用場景:呼叫來電界面 InCallScreen
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved