我使用我的Android應用程序的應用程序上下文作爲我的應用程序的「當前狀態」信息的存儲區域。Android應用程序上下文是否被破壞?
我發現在這個領域,有些情況下這些信息會在某些人的設備上消失,導致各種NullPointerException異常,因爲我希望當應用程序恢復並開始重建必要的活動時,數據就在那裏。
這通常發生在用戶點擊「Home」,執行其他操作時,最終回到應用程序 - 它試圖回到以前的位置,但應用程序Context已經神祕地丟失了之前保存的所有內容狀態信息(在我的情況下,一些整數和一些字符串)。
我知道這是一個非常模糊的問題,但是有沒有任何情況(除了用戶使用「back」完全退出應用程序)應用程序上下文被完全銷燬,即使應用程序未終止?
有更好的方法來維護持久狀態信息嗎?
我想的很多。有什麼具體的,我可以做*迫使*這種情況下(我的應用程序被殺害),所以我可以重現它?它顯然在現場發生了很多,但我從未能在本地Nexus One上重現過它。在這種情況下onTerminate()然後調用應用程序進程? – user435210 2010-11-09 16:52:16
@ user435210 1.查看包含應用程序生命週期的頁面 - 它解釋了爲管理應用程序生命週期所需瞭解的幾乎所有內容。 2.您可以通過進入'設置/應用程序/管理應用程序/您的應用程序'或通過使用Android市場上可下載的任何應用程序來殺死您的應用程序。 – 2010-11-09 16:59:43
如果你想以「友好」的方式重現它(不是強制殺死),我會打回家,然後啓動你可以在系統上找到的每個應用程序,這樣Android就會被迫關閉你的系統。正如它在文檔中指出的那樣,onTerminate可能會被調用,但這不是保證。舉例來說,如果您的應用程序因殺死所有應用程序應用程序而關閉,它很可能不會被調用。 – 2010-11-09 17:26:40