android - 不同进程中的 OnPreferenceChangeListener - 共享偏好数据

标签 android process callback preferences sharedpreferences

所以我的问题如下:我有 2 个服务在不同的进程中运行,我想保持这种状态。一种是将数据从数据库传输到绑定(bind)的应用程序,第二种是通过套接字轮询传入数据。我觉得将这些保持在独立的过程中会更好。问题是我想在这两个服务之间共享首选项,并想实现 OnSharedPreferenceChangeListener 来更新轮询和总线数据所需的设置。我无法在服务中实现 OnSharedPreferenceChangeListener,因为它们在不同的进程上运行。我可以在 PreferenceActivity 上实现它,但我如何与服务通信以立即更新?我不想使用 AIDL 并担心绑定(bind)问题。有可能创建广播接收器并发送 Intent ,但如果设置菜单变大,这些似乎是一个很大的工作。还有其他好主意吗?

最佳答案

好的,这就是你的答案......

对于此示例的偏好,我们采用 3 个类 - 2 个服务服务 A 和 B(href A、B)和设置(preferenceActivity)

将两个服务初始化为

public class ServiceA/B extends serice implements OnSharedPreferenceChangeListener{
    @Overside
    public void onCreate(....){
        Settings.getPrefs(this).registerOnSharedPreferenceChangeListener(this);  

     }
    @Override
    protected void onResume() {
        super.onResume();
        Settings.getPrefs(this).registerOnSharedPreferenceChangeListener(this);  
    }

    @Override
    protected void onPause() {
        super.onPause();
        // Unregister the listener whenever a key changes
        Settings.getPrefs(this)
                .unregisterOnSharedPreferenceChangeListener(this);
    }
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
        String key) {
    System.out.println("++"+key+"++");
    if(key == "KEYA"||key == "KEYC")
        Do_what_ever_you_want();
            if (key == "KEYB")
        do_anything();
    }
    do_anything(){}
    Do_what_ever_you_want();
}

共享偏好部分。

public class Settings extends PreferenceActivity implements
OnSharedPreferenceChangeListener{
      public static final String PREFS_PRIVATE = "PREFS_PRIVATE";
      public static final String MASTERKEY = "!@#$%^&*";

      public static final String KEYA = "KEYA";
      public static final String KEYB = "KEYB";
      public static final String KEYC = "KEYC";

       --- the create and get methods for getting and sharing data in the prefs... ..... 
      // get them from just a google search.

}

我在我的一个应用程序中实现了这个系统......并部署了......所以摆弄这些基础知识并让我知道它是怎么回事......

拉杰什...

关于android - 不同进程中的 OnPreferenceChangeListener - 共享偏好数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969686/

相关文章:

android - 如何在 Material Design 中添加 ActionBar?

javascript - 检测何时由 Android 浏览器的屏幕键盘触发调整大小事件

android - 滑动关闭服务通知

c# - 如何检测当前登录用户是否正在运行进程?

node.js - 如何从 node.js 中的 mysql SELECT 查询返回值

android - 启动后调试服务

java - 为什么hadoop守护程序立即停止?

Linux,子进程超时

c - 使用回调的优点(在非事件驱动程序中)

javascript - 回调、导出和 JavaScript