官方文档(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%')
}
}
查看数据文件