registerOnShared preferenceChangeListener不工作在不同的过程中所做的更改 [英] registerOnSharedPreferenceChangeListener not working for changes made in different process

查看:258
本文介绍了registerOnShared preferenceChangeListener不工作在不同的过程中所做的更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经注册 registerOnShared preferenceChangeListener 我的共享preferences 在我的活动。当我更改保存数据共享preferences 里面不同的进程中运行的服务, onShared preferenceChanged 不叫!

I have registered registerOnSharedPreferenceChangeListener with my SharedPreferences in my Activity. When I change the data saved with SharedPreferences inside service running in different process, onSharedPreferenceChanged is not called!

我应该怎么做才能让Android电话 onShared preferenceChanged

What should I do to make android call onSharedPreferenceChanged?

推荐答案

最有可能的,它是由GC垃圾回收。我以前也遇到了这个问题。做一个全局变量,这使硬参考监听器。

Most likely, it is being garbage collected by gc. I have faced this problem before. Make a global variable which keeps a hard reference to the listener.

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

在<一个答案href=\"http://stackoverflow.com/questions/2542938/shared$p$pferences-onshared$p$pferencechangelistener-not-being-called-consistently/3104265#3104265\">Shared$p$pferences.onShared$p$pferenceChangeListener不会被调用一贯该最能解释

这篇关于registerOnShared preferenceChangeListener不工作在不同的过程中所做的更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆