广播接收器内部的共享首选项

Posted

技术标签:

【中文标题】广播接收器内部的共享首选项【英文标题】:Shared preferences inside broadcastreceiver 【发布时间】:2012-02-22 21:44:21 【问题描述】:

在我的应用程序中,我想在广播接收器中使用共享首选项...但我无法访问内部的 getPreferences() 方法...

 SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);

我不能用上下文对象调用...任何其他方法???

【问题讨论】:

【参考方案1】:

您可以使用来自 BroadReceiver 的onReceive(Context arg0, Intent arg1) 的上下文。

@Override
    public void onReceive(Context arg0, Intent arg1) 
        SharedPreferences prefs = arg0.getSharedPreferences("myPrefs", 
                                                        Context.MODE_PRIVATE);

【讨论】:

不,这取决于您的使用情况。 @subrussn90 有,安全问题。 @YoushaAleayoub 请详细说明或给出更好的答案! @LalitPoptani 所以让我教你:android doc:“创建世界可读的文件是非常危险的,并且可能会导致应用程序中的安全漏洞。强烈建议不要这样做;相反,应用程序应该使用更正式的文件ContentProvider、BroadcastReceiver 和 Service 等交互机制。无法保证此访问模式将保留在文件上,例如在进行备份和恢复时。" @YoushaAleayoub 哪里是世界可读的?在我的答案中使用?

以上是关于广播接收器内部的共享首选项的主要内容,如果未能解决你的问题,请参考以下文章

应用关闭时接收 TIME_SET 广播

Android 广播接收者 BroadcastReceiver

Android广播机制

Android广播BroadcastReceiver

广播接收者 BroadcastReceiver 示例-1

私人广播发送者和接收者权限