HarmonyOS通过首选项实现数据持久化

385 阅读1分钟

@ohos.data.preferences (用户首选项)

用户首选项支持持久化轻量级数据,并提供相关方法对其新增、修改、查询、删除。

数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。

c4448d355aa16c672c2d81378e84a6f2.jpeg

约束限制

  • Key键为string类型,要求非空且长度不超过80个字节。
  • 如果Value值为string类型,请使用UTF-8编码格式,可以为空,不为空时长度不超过8192个字节。
  • 内存会随着存储数据量的增大而增大,所以存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。
获取Preferences实例

getPreferencesSync(context: Context, options: Options): Preferences该接口存在异步接口。

//{name:'store'}中'store'为Preferences实例的名称
const pre = preferences.getPreferencesSync(getContext(),{name:'store'})
调用Preferences实例上的putSync()完成数据的新增 (这是将数据保存到内存中)
//新增/修改:如果首选项中没有数据则是【新增】、如果有数据则会被新值覆盖,则为【修改】
pre.putSync('keyword',["鸿蒙Next","HTML5"])
调用Preferences实例上的getSync()完成数据查询
//从缓存的Preferences实例中获取键对应的值,如果值为null或者非默认值类型,返回默认数据defValue
pre.getSync('keyword',[])
调用Preferences实例上的deleteSync()删除指定数据
//从缓存的Preferences实例中删除名为给定Key的存储键值对
pre.deleteSync('keyword')
调用Preferences实例上的flush()将内存数据写入到磁盘
//持久化,有数据变化时只是保存到内存中,调用flush()才会持久化(存入磁盘)
pre.flush()