我正在跑步:
int value = mPreferences.getInt(key, 0);
mPreferences.edit().putInt(key, value+1).apply();
int newValue = return mPreferences.getInt(key, 0);
但是,value
和newValue
的结果相同。更新后的结果仅在我稍后在代码中调用getInt()
时显示。我认为使用SharedPreferences
的{{1}}对象的更新会立即显示在apply()
对象中。情况不是这样吗?
答案 0 :(得分:1)
如果您想要同步更新,则必须使用
commit()
http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#commit()
答案 1 :(得分:0)
首先commit()
& apply()
几乎相同,主要区别在于apply()
更快
我尝试以同样的方式做到这一点&它对我有用 检查一下:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
int a = sharedPreferences.getInt("a",0);
Toast.makeText(getActivity(), "a = " + a , Toast.LENGTH_SHORT).show();
sharedPreferences.edit().putInt("a", a+1).apply();
在检查应用数据中的xml后,我得到a
为1