1. 程式人生 > >Activity設定啟動模式的兩種方式

Activity設定啟動模式的兩種方式

Activity的啟動模式用於設定任務棧管理其方式,通常有兩種方式設定Activity啟動模式。

一種是在AndroidManifest.xml檔案中的<activity>節點中設定android:launchMode屬性,

可以設定四種standard,singleTop,singleTask,singleInstance;詳細含義點選檢視《Android開發藝術探索》學習總結2 Activity啟動模式,比如:

<activity android:name=".TransitionActivity"
    android:launchMode="standard"/>

另一種就是通過在開啟Activity的時候,通過設定Intent Flag來設定,比如:

Intent intent=new Intent(this,TransitionActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

下面就來介紹第二種方式幾個常用的Flag

(1)FLAG_ACTIVITY_SINGLE_TOP

其效果和第一種singleTop模式一樣

(2)FLAG_ACTIVITY_CLEAR_TOP

其效果和第一種singleTask模式一樣

(3)FLAG_ACTIVITY_NO_HISTORY

其效果是當某個Activity以這種方式啟動的時候,其再去啟動其他Activity,則該Activity就消失了;比如,A以這種方式啟動B,B啟動了C,那麼Activity的任務棧中就只有AC了

(4)FLAG_ACTIVITY_NEW_TASK

其效果是啟動的activity在一個新的任務棧中,功能和第一種singleInstance模式一樣,通常用於在一個沒有Activity任務棧的環境裡開啟一個Activity,就好比我們經常使用的服務裡面。