Activity設定啟動模式的兩種方式
阿新 • • 發佈:2019-01-03
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,就好比我們經常使用的服務裡面。