我在多項活動中獲得Sharedpreference值,有時我從Android的共享偏好中獲得舊值,我創建了自己的偏好文件來存儲loginid/pass等。 錯誤的可能原因是什麼?在Android錯誤中使用共享首選項時獲取舊數據?
我在這裏創建代碼
public void openPref() {
sharedPreferences = context.getSharedPreferences("abc",Context.MODE_PRIVATE);
}
設置和獲取功能
public String getValue(String key, String defaultValue) {
openPref();
String result = sharedPreferences.getString(key, defaultValue);
if (result != null)
result = decrypt(key, result);
sharedPreferences = null;
return result;
}
public void setValue(String key, String value) {
if (value != null)
value = encrypt(key, value);
openPref();
Editor prefsPrivateEditor = sharedPreferences.edit();
prefsPrivateEditor.putString(key, value);
prefsPrivateEditor.commit();
prefsPrivateEditor = null;
sharedPreferences = null;
}
。對於設定值
Pref objPref = new Pref(getApplicationContext());
objPref.setValue(Pref.abc, 'abc');
爲了得到值
Pref objPref = new Pref(getApplicationContext());
objPref.getValue(Pref.abc, null)
問題
我從兩個不同的活動settting ABC值,但 每一件事工作得很好,但有時它在我的Android應用程序突然老去值。
你總是打電話給editor.commit()嗎? – nikis
@nikis是的,但舊值將被存儲? –
SharedPreferences將數據存儲在對中。所以對於特定的鍵值會被覆蓋。沒有辦法從SharedPreferences中覆蓋舊數據。 –
kevz