【问题标题】:Data cache in Shared PreferenceShared Preference 中的数据缓存
【发布时间】:2012-01-03 15:48:57
【问题描述】:

我的应用程序中有 2 个进程。从一个过程中,我将数据保存到SharedPreferences。 从第二个过程 - 检索。当我检索数据时,我收到带有旧数据的SharedPreferences(我检查 xml 文件并查看,当前文件中的数据和收到的数据不同)。看起来此数据已被缓存。我更改了保存方法(提交/应用)但没有结果。 PS:例如http://pastebin.com/Zx2ffvSg

//saving
{ ...
 SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_PRIVATE);
    SharedPreferences.Editor prefsEditor = myPrefs.edit();
    prefsEditor.putString(MY_NAME, "Sai");
    prefsEditor.putString(MY_WALLPAPER, "f664.PNG");
    prefsEditor.commit();
... }

//retrieving
// when i call getData() I put "this" as argument.
public void getData(Context context){
SharedPreferences myPrefs = context.getSharedPreferences("myPrefs", MODE_PRIVATE);
...}

【问题讨论】:

  • 我们必须查看一些代码才能知道错误在哪里
  • 我认为不适合这种情况。我描述了使用 SharedPreference 的简单工作。也许我的情况有任何“陷阱”?
  • 确保键值对中的键相同。

标签: android caching sharedpreferences


【解决方案1】:

解决方案是在打开共享首选项时添加必要的标志 Context.MODE_MULTI_PROCESS 标志(在 API 级别 11 及更高版本中可用)

【讨论】:

  • 谢谢!你拯救了我的一天。
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2018-06-20
  • 2020-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多