Activity的啓動模式

學習記錄自《Android開發藝術探索》.

Activity的LaunchMode分爲四種

1,standard:標準模式,默認模式,每個Activity都會創建實例,不管是否已存在.

2,singleTop:棧頂複用模式.如果Activity已位於棧頂,那麼複用,並回調onNewIntent()方法.否則創建新的實例.

3,singleTask:棧內複用模式.單實例模式,只要棧內存在要啓動的Activity的實例,就不會創建新的實例.

4,singleInstance:此模式Activity只能單獨的位於一個任務棧中,且只有一個實例.

Activity設置啓動模式的方法

1,通過AndroidMenifest爲Activity指定啓動模式

<activity
            android:name=".NormalActivityLife"
            android:launchMode="singleInstance" />

2,通過Intent設置標誌位爲Activity設置啓動模式

 Intent intent = new Intent(this,NormalActivityLife.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);

Tips:
1,第二種啓動方式優先級高於第一種,當兩種都存在的時候,以第二種爲準

2,清單文件中無法爲Activity設置FLAG_ACTIVITY_CLEAR_TOP標識.

3,代碼中無法爲Activity指定singleInstance模式.

Activity的常見Flags

1,FLAG_ACTIVITY_NEW_TASK:爲Acitivity指定”singleTask”模式.

2,FLAG_ACTIVITY_SINGLE_TOP:爲Activity指定”singleTop”模式.

3,FLAG_ACTIVITY_CLEAR_TOP:具有此標記的Activity啓動時,位於其上的Activity都要出棧,一般會與singTask啓動模式一起出現.被啓動的Acitivity如果存在,系統會調用它的onNewIntent.

發佈了32 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章