所以我有一个广播接收器需要通知服务它已收到短信。这样做的唯一方法(据我所知)是静态方法。但是通知的方法需要访问应用程序的首选项。
我尝试过的每个方法都说无法从静态方法访问它。那么如何从静态方法访问首选项呢?
答案 0 :(得分:1)
您可以使用context
的{{1}}参数访问属于BroadcastReceiver
的内容,例如Context
要查看使用getSharedPreferences
的一些代码示例,请参阅另一个问题Making data persistent in android
答案 1 :(得分:1)
执行此操作的唯一方法(据我所知)是一种静态方法。
几乎没有。事实上,不推荐这种方法。
如果在收到广播时服务应该在内存中,请让服务通过BroadcastReceiver
注册registerReceiver()
并直接处理。如果收到广播时服务不应该在内存中,请使用startService()
启动服务并通过Intent
发送(在onStart()
服务中选择)。< / p>
那么如何从静态方法中访问首选项?
请参阅Pentium10的回答。