android - registerOnSharedPreferenceChangeListener 不适用于在不同进程中所做的更改

标签 android process sharedpreferences

<分区>

我已经在我的 Activity 中使用 SharedPreferences 注册了 registerOnSharedPreferenceChangeListener。当我在不同进程中运行的服务中更改使用 SharedPreferences 保存的数据时,不会调用 onSharedPreferenceChanged!

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

最佳答案

很可能,它正在被 gc 垃圾回收。我以前遇到过这个问题。创建一个全局变量,它保持对监听器的硬引用。

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

答案在 SharedPreferences.onSharedPreferenceChangeListener not being called consistently解释得最好

关于android - registerOnSharedPreferenceChangeListener 不适用于在不同进程中所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150480/

相关文章:

android - Firebase getInstance 总是抛出无虚拟方法异常

java - 为什么显示 "The method getPreferenceOnScreen is depriciated"?

Android Studio - Android Device Monitor 的文件资源管理器不工作

linux - 如果死了就开始进程

android - 为什么我们应该使用 aysntask 或 service 而不是新线程

windows - 在 Windows 中休眠单个进程

java - SharedPreferences 没有更新其值

Android N - 下载管理器通知取消按钮

Android Jsoup 向 ASPX 页面发布请求总是出现 500 错误

java - 在 ArrayAdapter 中的 edittext 之外执行某些操作后,如何隐藏 android 中的软键盘?