HarmonyOS 数据持久化失效问题?

this.dataPreferences?.putSync('colorMode', mode);
this.dataPreferences?.flush((err: BusinessError) => {
  console.log('writeThemeStyle', mode)
  if (err) {
    console.error(`writeThemeStyle Failed to flush. Code:${err.code}, message:${err.message}`);
    reject(err);
    return;
  }
  console.info('writeThemeStyle Succeeded in flushing.');
  resolve(true);
})

Preferences的保存数据的原理是什么,发现app启动mqtt后Preferences的保存数据时灵时不灵。

阅读 444
1 个回答

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-preferences-V5\#flush-1

另外IDE每次run项目(执行的命令都是先卸载当前推的hap包,再把要run的项目的hap包推上去),应用都会被卸载,其在设备上产生的数据库文件及临时文件也会被移除。 如果需要保存数据,可以在Run/DebugConfigurations- General - Installation Options -中勾选 Keep Application Data。

首选项存储沙箱路径:

data/app/el2/100/base/<bundleName>/haps/entry/preferences 

在DevEco Studio中可通过右下角的Device File Browser查看设备文件。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进