【HarmonyOS】如何实现数据持久化不会被应用卸载而清除
【关键字】
数据持久化,Asset Store Kit
【问题】
最近在学习HarmonyOS preivewer,遇到了一个场景,跟大家分享一下。
核心的需求是需要做一个数据持久化的能力,但是将数据缓存在应用沙箱的files目录下后,每次重启应用确实能够查到存储的数据,一旦将应用卸载重装,或者清除应用数据后,就找不到之前存储的数据了。
【解决方案】
那么有没有一种方法,能够将数据保存在本地,即时清除数据,或者卸载重装,也能够找到以前的数据呢?官方给了我们一种便捷的方案Asset Store Kit
Asset Store Kit(关键资产存储开发服务)包含了关键资产存储服务开放的接口能力集合,提供了用户短敏感数据的安全存储及管理能力。其中,短敏感数据可以是密码类(账号/密码)、Token类(应用凭据)、其他关键明文(如银行卡号)等长度较短的用户敏感数据。
我们使用Asset Store Kit保存持久化数据,并且设置IS_PERSISTENT为true(在应用卸载时是否需要保留关键资产,需要权限:ohos.permission.STORE_PERSISTENT_DATA),应用卸载重装后仍然可以查询到之前保存的数据。
【注意事项】
1.在查询asset时,如果从来没报错过某个资产,首次查询会抛出24000008(数据库操作失败)异常,因此在查询时除了判断取出的数组长度是否为0,还要专门处理这个异常码。
2.目前Asset Store Kit只能用来储存短数据,如果是大批量的数据,还需要卸载重装后仍持久化的话,还是得云端保存哦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库