我已在我的活动中注册registerOnSharedPreferenceChangeListener
我的SharedPreferences
。当我更改在不同流程中运行的服务中SharedPreferences
保存的数据时,不会调用onSharedPreferenceChanged
!
我应该怎样做才能调用android onSharedPreferenceChanged
?
答案 0 :(得分:18)
最有可能的是,它是由gc收集的垃圾。我以前遇到过这个问题。创建一个全局变量,保持对侦听器的硬引用。
OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
// Implementation
}
};
SharedPreferences.onSharedPreferenceChangeListener not being called consistently的答案解释得最好