应用后,SharedPreferences int未更新

时间:2014-10-13 16:25:40

标签: android sharedpreferences

我正在跑步:

int value = mPreferences.getInt(key, 0);
mPreferences.edit().putInt(key, value+1).apply();
int newValue = return mPreferences.getInt(key, 0);

但是,valuenewValue的结果相同。更新后的结果仅在我稍后在代码中调用getInt()时显示。我认为使用SharedPreferences的{​​{1}}对象的更新会立即显示在apply()对象中。情况不是这样吗?

2 个答案:

答案 0 :(得分:1)

答案 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