【鸿蒙【首选项】API持久化数据】

官方文档(API12)--->@ohos.data.preferences (用户首选项)

首选项:用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询  (Key-Value 是什么结构?AppStorage.setOrCreate(key,value))

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

作用:当用户希望有一个全局唯一存储数据的地方,可以采用用户首选项来进行存储

首选项基本操作:

1.初始化首选项实例

import { preferences } from '@kit.ArkData';  // 导入首选项api
const KEY = 'searchStore'
// 获得首选项实例
const preferencesInstance = preferences.getPreferencesSync(getContext(), { name: KEY })

2.向首选项写入数据并持久化到文件中(适用于初次写入数据和更新数据)

import { preferences } from '@kit.ArkData';  // 导入首选项api
const KEY = 'searchStore'
// 获得首选项实例
const preferencesInstance = preferences.getPreferencesSync(getContext(), { name: KEY })

3.获取首选项数据

// 利用首选项实例的get方法可以读取KEY中的数据
// 第一个参数KEY:要获取数据的key
// 第二个参数defValue:如果没有读取到数据,则返回默认数据
preferencesInstance.get(KEY, 默认值)

4.删除指定KEY的数据

preferencesInstance.deleteSync(KEY);

5.获取首选项文件的目录

getContext().preferencesDir

首选项文件操作演示代码

import { preferences } from '@kit.ArkData'
import { promptAction } from '@kit.ArkUI'

@Entry
@Component
struct SearchPage {
  build() {
    Row() {
      Column() {
        Button('向首选项保存数据').onClick(async (event: ClickEvent) => {
          const store = await preferences.getPreferences(getContext(), { name: 'stroe' })
          await store.put("name", "关小鱼")
          await store.flush()

          promptAction.showToast({ message: '保存成功' })
        })

        Button('更新首选项数据').onClick(async (event: ClickEvent) => {
          const store = await preferences.getPreferences(getContext(), { name: 'stroe' })
          await store.put("name", "噗~关小鱼")
          await store.flush()

          promptAction.showToast({ message: '更新成功' })

        })

        Button('获取首选项数据').onClick(async (event: ClickEvent) => {
          const store = await preferences.getPreferences(getContext(), { name: 'stroe' })
          let res = await store.get("name", "这是默认值")

          promptAction.showToast({ message: res.toString() })

        })
        Button('删除首选项数据').onClick(async (event: ClickEvent) => {
          const store = await preferences.getPreferences(getContext(), { name: 'stroe' })
          store.deleteSync('name')
          await store.flush()
          promptAction.showToast({ message: '删除成功' })

        })

        Button('获取首选项文件路径').onClick(async (event: ClickEvent) => {
          let dir = getContext().preferencesDir

          AlertDialog.show({message:dir})

        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

查看数据文件

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值