我用下面的代码创建了一个 SharedPreference:
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
flag = prefs.getBoolean("handle_calls", false);
if (flag) {
SharedPreferences.Editor editor = prefs.edit();
editor.clear();
editor.putBoolean("checkFlag", true);
editor.commit();
}
前几天是可以运行的,现在代码还正常运行,但是当我想读取SmsReceiver 中SharedPreferences类的参数时,不能读取值,默认值读出来也是错误的。
读取SharedPreferences的方法:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SmsManager sms = SmsManager.getDefault();
//flag = prefs.getBoolean("handle_calls", false);
checkFlag = prefs.getBoolean("checkFlag", false);
checkDecisionFlag = prefs.getBoolean("checkDecisionFlag", false);
checkDecisionFlag可以正常运行,checkFlag执行默认值。
错误出在哪里啊?
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
用THIS ,会默认用包名的,可以使用getSharedPreferences
prference = getSharedPreferences(PREF_NAME, MODE_WORLD_READABLE );
22. prference.edit().putString(KEY, mEditText.getText().toString()).commit();
读取
try {
c = this.createPackageContext("org.ourunix.android.sharepreferencewrite", CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (c != null)
prference = c.getSharedPreferences(NAME, MODE_PRIVATE);