2013-07-22 48 views
0

我正在使用Samsung Galaxy Tab 2測試我的Android應用程序代碼。我正在使用共享首選項在設備上存儲用戶名和密碼。我正在與Github合作,因爲這是一個團隊項目。當我將設置保存到較舊版本的代碼中的共享首選項中,然後嘗試使用較新版本時,出現空指針異常。當我卸載應用程序並使用較新版本時,不會發生這種情況。在這種情況下,一切似乎都工作正常。較新的版本有一些新的鍵值對存儲在共享首選項中。有人可以讓我知道爲什麼會發生這種情況,我能做些什麼來避免這種情況?使用github和Android設備時的共享首選項問題

回答

0

SharedPreferences存儲在設備上,如果您更新應用程序保存在那裏。如果您在代碼中更改密鑰/值對,則不會自動更新密鑰。另一方面卸載應用程序將刪除每個應用程序設置,即您的SharedPreferences

如果較新的版本查找使用新密鑰存儲的數據,如果使用舊密鑰存儲它將不會找到任何內容,並且將返回null。這很可能是您遇到的NPE。

你可以檢查兩個鍵(如果存在的話更喜歡新的鍵),並保持與舊版本的兼容性。

除此之外,您應該始終期望得到null並以安全的方式處理它,因爲用戶可以隨時清除應用程序設置。