我有一个包含 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>)
得到SharedPreferences
由 Activity
保存.
关于android - getPreferences(MODE_PRIVATE) 在 BroadcastReceiver 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847941/