android - 无法在共享首选项中存储字符串(巨大)

标签 android sharedpreferences

我通过在共享首选项中使用 GSON 将其转换为 json 来存储我的复杂对象。但是在检索它时,无法获得预期的字符串。

代码

这里 holderListCustomizationMap 是对象的复杂映射。

设置共享首选项:

Gson gson = builder.create();
        SharedPreferences sh=getSharedPreferences("MYFILE",Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sh.edit();
        String json = gson.toJson(holderListCustomizationMap);
        editor.putString("Holder",json);
        editor.apply();

在存储时,json 会打印出完整的预期字符串。

从共享首选项中检索我的 map :

SharedPreferences sh = context.getSharedPreferences("MYFILE", Context.MODE_PRIVATE);
    String listCutomizatoinJson = sh.getString("Holder","");

当我打印 listCutomizatoinJson 时,只得到这个 {} 而不是整个 json。

最佳答案

将大的 String 存储到 SharedPreferences 是一个很长的异步操作。检查您的问题是否不是您只是在保存之前尝试读取该值。还要检查您是否对这两个操作使用相同的 SharedPreferences 实例。

关于android - 无法在共享首选项中存储字符串(巨大),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29486067/

相关文章:

android - Square okHTTP 证书固定 - sslSocketFactory 错误

java - 如何存储 Android 的单用户登录数据?

java - 在java中更改多个textView的颜色

android - apkbuilder 在将 powermock 添加到 android 测试项目时发现重复文件

android - 如何将多个服务提供商集成到 Paypal 应用程序中?

android - 空对象引用上的 void android.view.View.dispatchWindowVisibilityChanged(int)'

java - Android 应用程序仅在我从 Android Studio 安装时有效但当我直接在其他手机上安装 APK 时无效

java - 我的切换中的 SharedPreferences 问题

Android:获取具有其值(value)的sharedpreferences的关键

java - 在 ListView 中获取位置时解析 json 数据时出错