我的應用程序有兩個活動,ActivityA和ActivityB。它們在以下AndroidManifest中指定:通過長按主頁按鈕啓動應用程序總是重新啓動應用程序,而不是將其放到前臺
<activity android:name=".ActivityA" android:label="@string/app_name" android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityB"
android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden|screenSize"
android:windowSoftInputMode="stateAlwaysHidden"/>
該問題的情況如下。
- 我啓動應用程序,並顯示ActivityA。
- 從ActivityA開始,我開始ActivityB並關閉ActivityA。現在任務堆棧只包含ActivityB。
- 我按主頁按鈕,然後手機進入主屏幕。
- 我長按主頁按鈕,並從歷史記錄中選取我的應用程序。
- 在步驟4之後,ActivityA啓動並顯示,並且任務堆棧包含頂部的ActivityA和底部的ActivityB。
我在第5步非常困惑。我期望的是,應用程序將被帶到前臺,其現有任務堆棧,即只有任務堆棧中的ActivityB。爲什麼Android會在第5步啓動ActivityA?
順便說一句,客戶端日誌包含下面的信息在步驟5:
10-26 21:29:04.070 V/HtcAppUsageStats(275):(發射應用程序,包):(MyApp的,com。示例。 myapp)
10-26 21:29:04.070 I/ActivityManager(275):Starting activity:Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x34500000 cmp = com.example.myapp/.ActivityA bnds = [0,566] [540,662](有額外)}來自pid 275
感謝您的任何建議!
也許你的應用程序崩潰了,當它進入後臺時(見onPause()等),你會捕獲異常,並且每次都會重新創建嗎? – Simon
我的應用沒有崩潰。我沒有在日誌中看到任何異常。 – Kai
您可以檢查您的手機的開發人員選項中是否啓用了「不要保留活動」選項 –