第一次提交没有提高onSharedPreferenceChanged

时间:2015-10-16 15:10:04

标签: android events sharedpreferences preferences

我们调查了这种奇怪的行为。

我们在主要活动中创建 OnSharedPreferenceChangeListener 并存储在静态字段中:

public static SharedPreferences.OnSharedPreferenceChangeListener listener = null;

我们也在onCreate方法中创建并注册了它。

我们有三个按钮以这种方式更改设置和调用提交:

                SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
                SharedPreferences.Editor editor = prefs.edit();
                editor.putString("setting1", "value");
                editor.commit();

问题在于:

当我们点击按钮时,第一次没有引发 onSharedPreferenceChanged !当我们第二次点击时,一切正常。为什么事件没有第一次提出?

1 个答案:

答案 0 :(得分:0)

我希望它会帮助某人:

问题是我们在onCreate方法中注册了它。如果你将在onResume方法中创建它,它是有效的。

此外,请查看此答案以了解SharedPreference的常见问题:SharedPreferences.onSharedPreferenceChangeListener not being called consistently