HarmonyOS首选项

创建preferences

  //加载
  async loadPreference(context: Context, name: string) {
    try {
      this.pref = await preferences.getPreferences(context, name)
      console.log("xzjTest", "加载成功")
    } catch (err) {
      console.log("xzjTest", `获取失败:${err}`)
    }
  }

因为首选项的创建取值以及存储都是异步过程,所以需要加上await和async,还需要导入首选项的包

import preferences from '@ohos.data.preferences'```
  //存值
  async putValue(key: string, value: preferences.ValueType) {
    try {
      await this.pref?.put(key, value)
      await this.pref?.flush()
      console.log("xzjTest", `存储成功,,value:${JSON.stringify(value)}`)
    } catch (e) {
      console.log("xzjTest", `获取失败:${e}`)
    }

  }```
  //取值
  async getValue(key: string, value: preferences.ValueType) {
    try {
      console.log("xzjTest", `获取成功,value:${value}`)
      return await this.pref?.get(key, value)
    } catch (e) {
      console.log("xzjTest", `获取失败:${e}`)
    }
    return value
  }
}
//使用的时候在程序入口EntryAbility中的onCreate方法中初始化
 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    PreferenceUtil.loadPreference(this.context, "list")
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  }

页面中使用

取值
async aboutToAppear() {
    this.getList()
    this.finishedTask = await PreferenceUtil.getValue("finishedTask", 0) as number
    this.totalTask = await PreferenceUtil.getValue("totalTask", 0) as number
  }
存值
handTaskChange() {
    this.totalTask = this.taskList.length
    this.finishedTask = this.taskList.filter(i => i.finished).length
    PreferenceUtil.putValue("totalTask", this.totalTask)
    PreferenceUtil.putValue("finishedTask", this.finishedTask)
    PreferenceUtil.putValue("list", this.taskList)
  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值