我在多个活动中获得Sharedpreference值,有时我从android中的共享首选项中获取旧值,我创建了自己的首选项文件来存储loginid / pass等。 什么是可能的错误原因????
我在这里创建代码
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)
问题
我正在从两个不同的活动中设定abc值,但是, 每件事情都运作良好,但有时它会在我的Android应用程序中突然变老。
答案 0 :(得分:0)
您的sharedPreferences对象已旧。每次你需要从中获取数据时再次初始化
sharedPreferences = context.getSharedPreferences("abc",Context.MODE_PRIVATE);
然后尝试获取数据。由于数据是从其他活动改变的,您需要再次获取它。