gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:10:07 28 4
gpt4 key购买 nike

所以我的问题如下:我有 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com