鸿蒙Next开发日记 Day06 - 使用preferences持久化存储数据

数据_百度百科

用户首选项(Preferences):通常用于保存应用的配置信息。数据通过文本的形式保存在设备中,应用使用过程中会将文本中的数据全量加载到内存中,所以访问速度快、效率高,但不适合需要存储大量数据的场景。

官方对于preferences的定义,是用来存放一些应用的配置信息的,如果存放复杂数据,推荐还是使用键值型数据库(KV-Store)或者关系型数据库(RelationalStore)。

下面是一个简单的工具的实现。

import { preferences, ValueType } from '@kit.ArkData';
import { BusinessError } from '@ohos.base';

export class PreferencesManager {
  dataPreferences: preferences.Preferences | null = null;

  constructor(context: Context) {
    let options: preferences.Options = { name: '你的存储命名' };
    this.dataPreferences = preferences.getPreferencesSync(context, options);
  }

  // 是否已存在对应的Key
  has(key: string) {
    return this.dataPreferences?.hasSync(key)
  }

  // 存入一个数据
  put(key: string, value: ValueType) {
    this.dataPreferences?.putSync(key, value)
  }

  // 获取数据
  get(key: string, defaultValue: ValueType) {
    return this.dataPreferences?.getSync(key, defaultValue)
  }

  // 删除一个key
  delete(key: string) {
    this.dataPreferences?.deleteSync(key)
  }

  // 把数据持久化
  flush() {
    this.dataPreferences?.flush((err: BusinessError) => {
      if (err) {
        console.error(`Failed to flush. Code:${err.code}, message:${err.message}`);
        return;
      }
      console.info('Succeeded in flushing.');
    })
  }
}

这里需要有地方需要注意,只有当你调用了flush后才会把数据持久化存储。

关键词:鸿蒙NEXT

网友留言(3 条)

  1. 好看的电视剧推荐
    好看的电视剧推荐 回复Ta
    《死人的鞋子》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/32661.html
  1. www.55baobei.com
    www.55baobei.com 回复Ta
    你的文章内容非常用心,让人感动。 http://www.55baobei.com/9B0HflD49a.html
  1. maqo2.nowtet.com
    maqo2.nowtet.com 回复Ta
    学到了,这篇文章我找了很久了,终于有幸能学习

发表评论

验证码