【android】activity的4種啟動模式簡介

來源:互聯網
上載者:User

標籤:

首先咱必須知道,activity是以棧(後進先出)的結構進行管理的。

當活動A啟動了活動B時,A被壓入到棧內,B在棧的最頂層。當B調用finish()結束活動時,B從棧彈出,此時A在棧的最頂層。

我們可以在AndroidManifest.xml檔案的activity節點,通過指定android:launchMode="standard"屬性來實現啟動模式的變更。

好,瞭解活動是如何管理的,那麼咱就來瞭解下,活動的4種啟動模式。

1:stand

如果不指定啟動模式的話,都是用此標準型啟動模式。比如我們啟動了活動A,不管棧裡面是否已經存在A,A都會被重新建立一遍壓入棧。

2:singleTop

頂層活動唯一。比如我們啟動了活動A,此時如果棧的最頂層已經存在了A,那麼此時就直接使用A。

3:singleTask

棧內活動唯一。和2最大的區別是,此模式不管你活動在棧的什麼位置,只要啟動A的時候發現A已經在棧內了,在A上面的活動全部被銷毀(生命週期比如onDestory也會被執行),直接使用A

4:singleInstance

新建立一個棧來管理此活動。

比如我們指定了活動B啟動模式為singleInstance, A、C預設使用stand;以A -> B -> C順序來啟動三個活動後:

C活動finish()後,返回的是A(而不是B,因為管理B的棧獨立於AC);A活動finish()後,這時當前的棧已經空了,於是就找到了其他棧(也就是活動B所在的棧)。

 

【android】activity的4種啟動模式簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.