一、首选项
1.概述
首选项为应用提供Key-Value键值型的数据存储能力,支持应用持久化轻量级数据,并对其进行增删改查等
该存储对象中的数据会被缓存在内存中,有更快的存取速度
2.特点
- 以Key-Value形式存储数据
Key是不重复的关键字,Value是数据值
- 非关系型数据库
区别于关系型数据库,它不保证遵循ACID,数据之间无关系
-
因Preferences实例会加载到内存中,建议存储的数据不超过一万条
-
数据中的Key为string类型,要求非空且字符长度不超过80个字节
-
当数据中的Value为string类型时,允许为空,字符长度不超过8192个字节
3.使用
1. 导入preferences模块
import dataPreferences from'@ohos.data.preferences'
实例名字命名为dataPreferences
2. 获取preferences实例
需要在entryAbility的onCreate方法获取首选项实例,以便后续能进行保存、读取、删除等操作,获取实例需要上下文context和文件名字PREFERENCES_NAME
entryAbility.ets
onCreate(want, launchParam) {globalThis.abilityWant = want;// 创建首选项PreferencesUtil.createFontPreferences(this.context);...}
PreferencesUtil.ets
createFontPreferences(context) {globalThis.getFontPreferences = (() => {// 获取首选项实例let preferences: Promise = dataPreferences.getPreferences(context, PREFERENCES_NAME);return preferences;});}
globalThis全局对象中定义了一个函数getFontPreferences ,用来获取Preferences实例,该实例包括:
- get:查询
- put:插入
- has:检查是否存在
- delete:删除
- flush:写入文件
如:preferences.get()、 preferences.put()等
3.保存数据
entryAbility.ets
onCreate(want, launchParam) {globalThis.abilityWant = want;...PreferencesUtil.saveDefaultFontSize(Constants.SET_SIZE_STANDARD);}
4.获取数据
getChangeFontSize(){Let fontSize:number = 0;const preferences = await globalThis.getFontPreferences();fontSize = await preferences.get(KEY_APP_FONT_SIZE, fontSize);return fontSize;
}
在主页面HomePage.ets以及设置字体大小页面SetFontSizePage.ets加载的时候,即生命周期onPageShow方法处,去读取数据