Android-Activity的啟動模式

weixin_33711641發表於2018-05-23

通常在實際專案中我們應該根據特定的需求為每個活動指定合適的啟動模式。
啟動模式一共有四種,分別是standard、singleTop、singleTask、singleInstance。可以在AndroidManifest.xml中通過給<activity>標籤指定android:laumchMode屬性來選擇啟動模式。下面我將逐個介紹。

1. standard

stand是活動預設的啟動模式,在不進行顯式指定的情況下,所有活動都會自動使用這種啟動模式。在stand模式下,每當啟動一個新的活動,它就會在返回棧中入棧,並處於棧頂的位置。每次啟動都會建立該活動的一個新的例項。

2. singleTop

該模式下,如果發現返回棧的棧頂已經是該活動,則認為可以直接使用它,不會再建立新的活動例項。

3. singleTask

該模式下,每次啟動該活動時系統首先會在返回棧中檢查是否存在該活動的例項,如果發現已經存在則直接使用該例項,並把這個活動之上的所有活動統統出棧,如果沒有發現就會建立一個新的活動例項。

4. singleInstance

四種啟動模式中最為特殊也最複雜的一個,指定為singleInstance模式的活動會啟用一個新的返回棧來管理這個活動。
應用場景
假設我們的程式中有一個活動是允許其他程式呼叫的,如果我們想實現其他程式和我們的程式可以共享這個活動的例項,就可以使用這種模式。在這種模式下會有一個單獨的返回棧來管理這個活動,不管是哪個應用程式來訪問這個活動,都共用的同一個返回棧,也就解決了共享活動例項的問題。

相關文章