發生了什麼事:從Android應用程序恢復被殺害
- 我打開我的應用程序,然後按home鍵離開了一會兒。
- 我進入
Settings > Applications > Manage Applications > Running
,在緩存後臺應用程序列表中找到我的應用程序,並停止它。 - 然後我按住主頁按鈕,並在最近的應用程序列表中選擇我的應用程序,再次運行它。
[注:這些步驟只是我迫使測試人員看到了同樣的症狀的方法 - 他們只是進入和退出應用,通常情況下,不強制其關閉]
它在我離開它的活動中打開,但處於不良狀態。第一個問題是保存用戶信息的內存消失了(如果應用程序被終止,這是有意義的)。我解決了這個問題,使用戶類可序列化並將當前用戶對象存儲在onSaveInstanceState
中,然後將其加載回onCreate
。同樣,我不得不重新創建我的ClientConnectionManager
以使網絡再次運行。
的「重裝」活動運行得很好,我可以瀏覽並使用新建活動,但如果我不是打後退按鈕回到之前我強行停止的應用程序,創建一個活動,我得到一個異常,說User類不存在(ClassNotFoundException,顯然是在執行unparcel時)。
這是怎麼發生的?當應用程序被殺時,處理這種情況的正確方法是什麼,但仍然知道重新打開時要返回哪個活動?該應用未運行但未完全關閉的狀態名稱是什麼?
我可以嘗試玩這些遊戲,但重要的是我可以返回我的活動。現在我的活動再次啓動,只是在後臺堆棧中的活動在啓動時崩潰。 –
你能描述你的活動和以前的活動之間的關係嗎?你傳遞的是價值還是結果? – avimak
我的任何活動都發生這種情況,因爲在保存狀態時,我始終將一個可序列化(並且不可分類)的用戶對象放入該包中。我已經添加了一個解決方案來討論這個謝謝你的幫助。 –