我有兩個活動,一個Splash Activity(單擊啓動器圖標時啓動)和一個Map活動(在用戶登錄之後,它在意圖後面啓動)。當前活動(使用SingleTask launchMode)在主屏幕返回後不會恢復(改爲調用onNewIntent來啓動Activity)
有時當Map Activity打開時,我會進入主屏幕,然後嘗試恢復幾秒鐘後離開的應用程序。我注意到,當我點擊主屏幕上的啓動器圖標以恢復當前活動(地圖活動)時,我改爲重新定向到Splash活動。這違背了Android文檔中列出的行爲。
根據文檔: 「當用戶通過按下主頁按鈕離開任務時,當前活動停止並且其任務進入後臺,系統保留任務中每個活動的狀態。用戶以後通過選擇任務開始啓動器圖標恢復任務,任務涉及到的前景和在堆棧的頂部恢復活動」
在地圖活動運行,我的背堆棧:
---MapActivity (front-facing activity)
---SplashActivity
Whe n我點擊home,我看到onStop()在MapActivity中被調用(如預期的那樣),但是當我點擊啓動器活動時,MapActivity被銷燬,onNewIntent在SplashActivity中被調用。有誰知道是什麼導致了這種行爲?
我的Android清單是:
<activity
android:name=".SplashActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.deca.mw.SplashActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<activity
android:name=".activity.MapActivity"
android:hardwareAccelerated="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
,並開始MapActivity的意圖是:
Intent intent = new Intent(appContext, MapActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
appContext.startActivity(intent);
你的onDestroy()在MapActivity中被調用嗎? Android可能已經決定殺死這個應用程序,然後啓動你的Splash應用程序,因爲它是默認的。 –