HarmonyOS 鸿蒙Next 持久化存储UI状态,每次启动都是初始值,没有持久化成功

发布于 1周前 作者 itying888 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 持久化存储UI状态,每次启动都是初始值,没有持久化成功

持久化存储UI状态,每次启动都是初始值,没有持久化成功 场景1:存储用户信息登录状态,下次App启动记住登录状态; 场景2:存储当前上线地区信息,用户在app内手动切换,下次启动记住;

PersistentStorage.persistProp('aProp', 47);

@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  @StorageLink('aProp') aProp: number = 48

  build() {
    Row() {
      Column() {
        Text(this.message) // 应用退出时会保存当前结果。重新启动后,会显示上一次的保存结果 
        Text(`${this.aProp}`)
          .onClick(() => {
            this.aProp += 1;
          })
      }
    }
  }
}

更多关于HarmonyOS 鸿蒙Next 持久化存储UI状态,每次启动都是初始值,没有持久化成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
这个问题是因为IDE每一次编译都相当于走了一次app卸载再安装的流程,而之前flush的数据会在app卸载时跟随app一起清除,所以在第二次编译的时候,就查询不到之前flush的数据了,但这不影响用户正常使用状态下的flush数据。您直接在IDE中勾选Keep Application Data 即可。

参考链接如下:

https://blog.csdn.net/u010358168/article/details/135851090

更多关于HarmonyOS 鸿蒙Next 持久化存储UI状态,每次启动都是初始值,没有持久化成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 持久化存储UI状态未成功的问题,可能由以下原因造成:

  1. 存储权限:检查应用是否已获取必要的存储权限。权限不足会导致数据无法正常写入。

  2. 存储路径:确认数据保存的路径是否正确。路径错误或路径下没有写权限,数据无法持久化。

  3. 数据格式:检查存储的数据格式是否符合要求。数据格式不正确或数据损坏,读取时会失败或读取到无效值。

  4. 读写逻辑:审查应用的读写逻辑,确保在正确的生命周期内执行读写操作。例如,在onPauseonDestroy时保存状态,在onCreateonResume时读取状态。

  5. 内存管理:确认应用没有因内存泄漏或资源管理不当导致数据丢失。

  6. 系统限制:了解并遵守鸿蒙系统的数据存储限制和规则,确保存储操作符合系统要求。

  7. 调试与日志:使用调试工具和日志记录,观察存储操作的实际执行情况和数据流向,查找问题所在。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部