解決方法,在app的啓動頁面例如SplashActivity中添加
if (!isTaskRoot()) {
finish();
return;
}
manifest.xml 中添加 android:alwaysRetainTaskState="true"
這個屬性用來標記應用的task是否保持原來的狀態,“true”表示總是保持,“false”表示不能夠保證,默認爲“false”。此屬性只對task的根Activity起作用,其他的Activity都會被忽略。另外,如果有android:launchMode="singleTask" ,則把這句刪除
<activity android:name=".splash.SplashActivity"
android:theme="@style/splashTheme"
android:alwaysRetainTaskState="true"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
當我們按HOME鍵返回桌面,任務棧的狀態被保留着,
當我們點擊應用圖標打開再次應用時,系統會判斷是否已經存在以Activity爲的棧,
如果有,那麼就直接使用該棧,並顯示棧頂的Activity.