Anroid學習之路(3)——Activity的啓動模式

Activity的啓動模式

    Activity的四種啓動模式:standard、singleTop、singleTask和singleInstance(在AndroidManifest.xml中,通過<activity>標籤的android:launchMdoe屬性可以設置啓動模式)

  ## standard模式 ##
  standard模式是Android默認的啓動模式,在不指定Activity的啓動模式下,所有Activity使用的都是standard模式。
      在standard模式下,每當啓動一個新的Activity,它就會進入任務棧,並處於棧頂的位置,對於使用standard模式的Activity,每次啓動都會創建一個新的實例

      操作模式,如圖所示:

standard模式

 ## singleTop模式 ##
 與standard模式不同在於,當啓動的Activity已位於棧頂時,直接使用它不創建新的實例。如果啓動的Activity沒有位於棧頂,創建一個新的實例位於棧頂。

singleTop

    ## sinleTask模式##
        如果希望Activity在整個應用程序中只存在一個實例,可以使用singleTask模式。當啓動模式爲singleTask,每次啓動該Activity時,系統首先會檢查棧中是否存在該Activity的實例,如果發現已經存在則會直接使用該實例,並將當前Activity之上的所有Activity出棧,如果沒有發現則創建一個新的實例。

singleTask

## singleInstance ##
如果需要Activity在整個系統中都只有一個實例,這時候需要用到singleInstance模式。指定爲singleInstance模式的Activity會啓動一個新的任務棧來管理這個Activity。
singleInstance模式加載Activity時,無論從哪個任務棧中啓動該Activity,只會創建一個Activity實例,並且會使用一個全新的任務棧來裝載該Activity實例。採用這種模式的Activity分爲兩種情況:
第一種:如果啓動的Activity不存在,系統會先創建一個新的任務棧,再創建該Activity的實例,並把該Activity加入棧頂。
第二種:如果要啓動的Activity已經存在,無論位於哪個應用程序或者哪個任務棧中,系統都會把該Activity所在的任務轉到前臺,從而使該Activity顯示出來。

singleInstance

代碼示例:
AndroidManifest.xml界面

這裏寫圖片描述

FirstActivity.java界面

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章