android - getPreferences(MODE_PRIVATE) 在 BroadcastReceiver 中未定义

标签 android

我有一个包含 Activity 和服务的应用程序,我需要在 Activity 中保存一些值并在服务中检索。

我可以在 Activity 中使用 SharedPreferences 保存值,但是,当我尝试在 BroadcastReceiver 中检索值时,它说 getPreferences 未定义服务。

我如何在 BroadcastReceiver 中检索我的值?

最佳答案

EDITED 以反射(reflect)来自 Service 的原始问题的变化至 BroadcastReceiver .

而不是使用 getPreferences(int mode)Activity使用...

getSharedPreferences(String name, int mode).

getPreferences(int mode)方法是上述的一种便捷方法,只需传递 Activity类名作为 name范围。这意味着它实际上应该只用于给定的 Activity存储自己的内部偏好,而不是需要对其他应用程序组件具有全局性的偏好。

如果是 BroadcastReceiver onReceive(...)方法传递了一个 Context参数,以便您可以使用 context.getSharePreferences(<some_name>, <mode>)得到SharedPreferencesActivity 保存.

关于android - getPreferences(MODE_PRIVATE) 在 BroadcastReceiver 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847941/

相关文章:

java - 清理项目未修复 R.java 错误 (Android)

android - 在 mobilefirst ant 构建中控制 wlServerContext

android - 使用自定义 Intent 操作仅在特定应用程序上下文中启动 Activity

android - Cordova Android 中的推送通知图标

android - 如何打开相机,或从 recycleriew 项目中的按钮调用 startActivityForResult

java - 更改Android Fragment而不创建新的Fragment

android - "C2D_message is not unique"尝试制作标志 apk

java - Android 在加载大图像时显示预览模糊

安卓模拟器无法运行

Android布局并置顶