是否可以在BroadcastReceiver中设置SharedPreference?

时间:2015-07-27 12:44:45

标签: android sharedpreferences

我需要使用BroadcastReceiver生成通知,并需要在BroadcastReceiver类中保存一些数据。

所以,我使用了SharedPreference。但是无法将数据保存在SharedPreference`中。

  SharedPreferences pref_date;
  public static final String MyPREFERENCES = "MyPrefs";
  pref_date = context.getSharedPreferences(MyPREFERENCES,context.MODE_PRIVATE);
    _ed = pref_date.edit();
    String t="hello";
    _ed.putString(_date,t);
    _ed.putString(flag,"0");
    _ed.commit();

3 个答案:

答案 0 :(得分:0)

很难说无需查看源代码,但很可能您忘记调用Editor的{​​{1}}或apply()方法,如下所示:< / p>

commit()

答案 1 :(得分:0)

是的,SharepPreference只是一种具有存储和检索键值对的文件。您可以从应用程序中的任何位置访问它。甚至来自您的应用程序创建的服务。

答案 2 :(得分:0)

根据documentation,您应该如何写入您的SharedPreferences:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("yourKey", "stringToSave");
editor.commit();

这就是你的阅读方式:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
String defaultValue = "defaultValue";
String yourSavedString = sharedPref.getString("yourKey", defaultValue);

这是一个工作的复制/粘贴示例。请记住,"yourKey"用于标识您的值,因为SharedPreferences是键/值对,因此它们必须在您读取和写入时匹配。