2010-01-23 88 views
0

按下硬主頁按鈕後,我遇到了一種奇怪的行爲。 當您按Home時,一切正常 - 我的應用程序轉到背景,顯示主屏幕。但是,如果您嘗試在主菜單或最後一個任務列表中選擇我的應用程序,它的行爲就像之前沒有啓動過,並且不顯示您最後一次的活動 - 它只是從頭開始,即顯示啓動畫面並開始下一個相應的活動。此外,此應用程序的舊活動仍保留在活動堆棧中,並且應用程序的先前實例未終止 - 因此,如果您多次按「返回」,則只會遇到上一次工作期間無疑開始的那些活動與我的應用程序。初始屏幕活動由「android.intent.action.MAIN」過濾器和「android.intent.category.LAUNCHER」類別過濾。 奇怪的是,儘管我不攔截任何後退鍵擊或覆蓋任何onPause或onResume方法,所有這一切發生。發生了什麼與我對Android應用生命週期的理解相矛盾 - 我確信,當你點擊Home時,一個應用會跳到後臺,當你在後面的菜單中選擇它時,它就會放鬆並且不會重新開始。 (當然,除非在應用程序清單中聲明類似的東西,或者相應的方法被覆蓋或其他)。 我也檢查了一些其他生命週期事件 - 如改變方向或翻轉硬鍵盤 - 並沒有導致這種奇怪的結果。當您嘗試從主菜單或最後一個應用程序的菜單啓動應用程序時,會出現問題。 我希望你能幫助我。任何關於要注意什麼或在哪裏尋找解決方案的建議都會非常棒。奇怪的主頁按鈕行爲

問候,亞歷克斯

回答

0

你需要設置android:launchMode="singleTask"在你的發射活動在您的清單文件。

有關launchMode更多信息屬性看here

需要注意的是:

默認模式爲 「標準」。

和:

每 時間有一個 「標準」活動新的意圖,中 一個新的實例類是創建於 這一意圖做出迴應。

+0

非常感謝您的回覆。 不幸的是,更改launchMode並沒有幫助。它影響我的啓動畫面活動的onCreate或onResume是否先被調用,lol :)但是,真正的問題是,當您嘗試在最小化應用程序後打開應用程序時,系統不會從棧頂開始執行最後一個活動,而是指LAUNCHER活動,並嘗試重新創建或恢復它 - 無關緊要。我只是對這樣奇怪的活動選擇感到困惑,以便在應用程序重新打開時向用戶展示 - 例如,本地消息應用程序總是讓你回到你所在的位置,而不是開始。 – 2010-01-23 09:47:17

+0

這對你的飛濺活動沒有多大意義。您的啓動活動是否配置爲您的清單中的LAUNCHER活動? – 2010-01-23 15:41:00

+0

你可能也想看看這裏:http://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after-restart-from-home/2061447 – 2010-01-23 15:44:34