Android學習筆記 --- android任務棧和啟動模式

來源:互聯網
上載者:User

標籤:

1、一個應用程式一般都是由多個activity組成的,任務棧(task stack),記錄和存放使用者開啟的activity。

2、當一個應用程式被開啟時,系統就會給他分配擬一個任務棧,當任務棧中所有的activity都退出的時候,任務棧就清空了。任務棧中的id是一個integer的資料類型(自增長的)。

3、在android作業系統裡面會存在多個任務棧,一個應用程式對應一個任務棧。

4、預設情況下,關閉掉一個應用程式,系統就會清空了這個應用程式。但是應用程式的進程還會被保留

 

為什麼要引入任務棧的概念?

  為了記錄使用者開啟了哪些activity,記錄這些activity開啟的先後順序,Google引入任務棧(task stack)的概念,為了擁有更好的使用者體驗。

 

activity的啟動模式中可以指定任務棧的模式:

  在AndroidManifest.xml中對指訂activity進行配置:

    <activity android:name=".MainActivity" android:launchMode="singleInstance">

四種啟動模式:

  1、standard   預設標準的啟動模式,每次startActivity都是建立一個新的activity執行個體

  2、singleTop  單一頂部模式,如果要開啟的activity在任務棧的頂部已經存在,就不會建立新的執行個體,而是直接使用這個頂部執行個體

  3、singleTask  單一任務棧,如果在棧中已經有該activity的執行個體,就重用該執行個體,會調用執行個體的onNewIntent()。重用時,會讓該執行個體回到棧頂,因此在它上面的執行個體將會被移除棧。如果當中不存在該執行個體,將會建立新的執行個體放入棧中。注意:singleTask模式的Activity不管是位於棧頂還是棧底,再次運行這個Activity時,都會destory掉它上面的Activity來保證整個棧中只有一個自己,切記切記”這點是毋庸置疑的。

  4、singleInstance  單態 單例模式 單一執行個體,整個手機作業系統裡面只有一個執行個體存在,activity總是在棧的頂端(因為他是任務中唯一的一個activity),所以總是能夠適當的處理行為

  

(轉)Android學習筆記 --- android任務棧和啟動模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.