registerOnSharedPreferenceChangeListener不适用于在不同进程中进行的更改

Sus*_* Kr 6 android process sharedpreferences

registerOnSharedPreferenceChangeListenerSharedPreferences在我的活动中注册了我的.当我更改SharedPreferences在不同进程中运行的内部服务保存的数据时,onSharedPreferenceChanged不会被调用!

我应该怎么做才能调用android onSharedPreferenceChanged

Akh*_*hil 19

最有可能的是,它是由gc收集的垃圾.我以前遇到过这个问题.创建一个全局变量,保持对侦听器的硬引用.

  OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
      public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
        // Implementation
      }
    };
Run Code Online (Sandbox Code Playgroud)

SharedPreferences.onSharedPreferenceChangeListener没有被一致地调用的答案最好地解释了它