2013-10-29 93 views
0

在我的Android應用程序,我已經使用了一個常量類來存儲如使用靜態變量的登錄用戶信息的應用程序數據。我可以在整個應用程序中使用這些數據。但是,當我長時間將應用程序放在後臺並在稍後啓動時,它會崩潰。錯誤堆棧在我從Constants類引用的變量中包含NullPointerException。節能Android應用程序使用狀態靜態常量

+0

如果你有你的背景很長一段時間的應用和採用Android操作系統將自動免費年代最近使用的應用程序的內存嘗試保存像共享偏好或文件中的一些持久性存儲這些憑據的應用程序的其餘部分。 – N20084753

+0

這裏是一個偉大的鏈接說明問題:[Android的靜態對象的生命週期(http://stackoverflow.com/questions/1944369/android-static-object-lifecycle-application-act-crazy)。解決方案是根據需要使用持久性機制(如SQLite或Shared Preferences)。在這裏尋找更多細節:[Android的存儲選項(http://developer.android.com/guide/topics/data/data-storage.html) – paulsm4

+0

我怎麼能防止「不幸的是停止」錯誤在這種情況下?並在我的應用中將用戶重定向到登錄屏幕或儀表板? – traj

回答

0

從靜態或之後應用程序關閉你無法檢索過去的變化的變量。爲此,您需要將值保存到文件系統或任何輕量級數據庫(例如SQLite)中。每當你啓動你的應用程序,你需要從文件或數據庫加載到你的靜態字段中。

1

當你的應用程序從內存中清除,所有的靜態變量(顯然是存儲在內存中)被清除,以及。 Saving Data Training詳細介紹了存儲數據的許多可用解決方案,以便即使應用程序被終止時也可以正確恢復。簡單的鍵值對可以存儲在Shared Preferences中。