【HarmonyOS】如何实现数据持久化不会被应用卸载而清除

【关键字】

数据持久化,Asset Store Kit

 

【问题】

最近在学习HarmonyOS preivewer,遇到了一个场景,跟大家分享一下。

核心的需求是需要做一个数据持久化的能力,但是将数据缓存在应用沙箱的files目录下后,每次重启应用确实能够查到存储的数据,一旦将应用卸载重装,或者清除应用数据后,就找不到之前存储的数据了。

 

【解决方案】

那么有没有一种方法,能够将数据保存在本地,即时清除数据,或者卸载重装,也能够找到以前的数据呢?官方给了我们一种便捷的方案Asset Store Kit

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/asset-store-kit-overview-0000001775403134

Asset Store Kit(关键资产存储开发服务)包含了关键资产存储服务开放的接口能力集合,提供了用户短敏感数据的安全存储及管理能力。其中,短敏感数据可以是密码类(账号/密码)、Token类(应用凭据)、其他关键明文(如银行卡号)等长度较短的用户敏感数据。

我们使用Asset Store Kit保存持久化数据,并且设置IS_PERSISTENT为true(在应用卸载时是否需要保留关键资产,需要权限:ohos.permission.STORE_PERSISTENT_DATA),应用卸载重装后仍然可以查询到之前保存的数据。

 

【注意事项】

1.在查询asset时,如果从来没报错过某个资产,首次查询会抛出24000008(数据库操作失败)异常,因此在查询时除了判断取出的数组长度是否为0,还要专门处理这个异常码。

2.目前Asset Store Kit只能用来储存短数据,如果是大批量的数据,还需要卸载重装后仍持久化的话,还是得云端保存哦。

posted @ 2024-03-05 15:06  Mayism123  阅读(113)  评论(0编辑  收藏  举报