编辑:此代码实际上有效。我在使用它的代码中有问题。无论如何都要留下它,以防有人发现它有用。
我有一个类有两种方法来编写和读取布尔持久首选项。但是,如果我写入一个新值然后尝试读取它,我仍然会得到旧值。只有当我杀死应用程序并重新启动它时,我才会获得新的价值。知道问题是什么吗?
Context mContext;
....
public void writeFlag(boolean flag) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(mContext);
Editor editor = sharedPreferences.edit();
editor.putBoolean("mykey", flag);
editor.commit();
}
public boolean readFlag() {
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(mContext);
return sharedPreferences.getBoolean("mykey", false);
}