第一次提交没有引发 onSharedPreferenceChanged
First time commit didn't raise onSharedPreferenceChanged
我们调查了奇怪的行为。
我们在主 activity 中创建了 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第一次没有触发!当我们第二次点击时一切正常。为什么第一次没有引发事件?
希望对某人有所帮助:
问题是我们在 onCreate 方法中注册了它。如果您将在 onResume 方法中创建它,它就可以工作。
此外,请查看此答案以了解 SharedPreference 的常见问题:SharedPreferences.onSharedPreferenceChangeListener not being called consistently
我们调查了奇怪的行为。
我们在主 activity 中创建了 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第一次没有触发!当我们第二次点击时一切正常。为什么第一次没有引发事件?
希望对某人有所帮助:
问题是我们在 onCreate 方法中注册了它。如果您将在 onResume 方法中创建它,它就可以工作。
此外,请查看此答案以了解 SharedPreference 的常见问题:SharedPreferences.onSharedPreferenceChangeListener not being called consistently