HarmonyOS 为什么PersistentStorage存储的Json数据 , 重启后会消失?

用PersistentStorage存储其他的string数据 , 再debug重启后还会存在;但是json数据存到PersistentStorage,再本次运行中能查到,debug重启后 就查不到了,是因为PersistentStorage存储失败了吗?如果是这样的话,为什么会失败,应该怎么处理?

HarmonyOS
2024-10-21 11:41:38
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

关于PersistentStorage存储问题解答如下:

DevEco Studio点击运行/重启按钮,会默认先卸载应用再进行安装,@ohos.data.storage存储数据时存在应用内部存储路径下的,所以卸载应用时会把应用数据也一并清除,之前存储的数据也会清除掉。

您还需要把IDE的安装模式改成覆盖安装,在DevEco Studio菜单选择“Run > Edit Configurations”,在“General”页签中勾选“Keep Application Data”,此时运行只会覆盖安装,不会卸载安装,可实现重新运行后原有存储的数据不会清除。

1.针对问题--PersistentStorage存储重启后依然输出默认值:

PersistentStorage的持久化变量最好是小于2kb(即2048字节)的数据,不要大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。如果开发者需要存储大量的数据,建议使用数据库api。

2.dataPreferences存储在set时就会崩溃:

此问题目前得出的结论是,Preferences存储的数据不超过一万条,Key键为string类型,要求非空且长度不超过80个字节,如果Value值为string类型,长度不超过8192个字节。而json字符串的长度已经超过8192个字节,所以会导致set时崩溃。

分享
微博
QQ
微信
回复
2024-10-21 16:05:23
相关问题
PersistentStorage持久化存储问题
370浏览 • 0回复 待解决
HarmonyOS 本地存储数据什么
32浏览 • 0回复 待解决
首选项存储问题,为什么会报错?
172浏览 • 1回复 待解决
数据存储地址是什么
1846浏览 • 1回复 待解决