gpt4 book ai didi

android - 无法在 Activity 和远程服务之间共享 SharedPreferences - Android 错误或功能?

转载 作者:行者123 更新时间:2023-11-29 14:33:45 24 4
gpt4 key购买 nike

我想在 SharedPreferences 更改时更新远程服务。以下内容用于 API 级别 8 (Android 2.2)。

我的 Activity 有一个 OnPreferencesChangedListener,它通过服务绑定(bind)器对象调用远程服务。远程服务的接口(interface)提供了一个方法 prefsChanged(void) ,它被监听器调用。之后,接口(interface)方法计算警报触发某些操作的新时间等。此时间也保存到 SharedPreferences 并发送广播。我的 Activity 收到广播,现在可以显示新的警报时间。 Activity 和远程服务通过调用静态方法 GetPrefs(Context) 获取 SharedPreferences 对象,该方法回答 PreferenceManager.getDefaultSharedPreferences(Context)

对于 API 级别 15 (Android 4.0.3),此功能停止工作。调试显示远程服务看到一些其他版本的 SharedPreferences 持有不同的(旧的?)值。从 Activity 和远程服务记录时,记录 SharedPreferencesImpl 对象会显示不同的地址。文件系统仅显示一个共享首选项文件。

这是一个错误还是我的代码巧合地适用于 API 级别 8?任何建议将不胜感激。

最佳答案

答案在这里,感谢 x90:https://stackoverflow.com/a/8723589/1127492

使用 MODE_MULTI_PROCESS 这是 Gingerbread (Android 2.3) 中和之前的遗留(但未记录)行为,并且在针对此类版本时暗含此标志。对于面向高于 Android 2.3 的 SDK 版本的应用程序,如果需要,必须明确设置此标志。

关于android - 无法在 Activity 和远程服务之间共享 SharedPreferences - Android 错误或功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8710076/

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