????????首选项为应用提供Key-Value键值型的数据存储能力,支持应用持久化轻量级数据,并对其进行增删改查等
????????该存储对象中的数据会被缓存在内存中,有更快的存取速度
????????Key是不重复的关键字,Value是数据值
????????区别于关系型数据库,它不保证遵循ACID,数据之间无关系
因Preferences实例会加载到内存中,建议存储的数据不超过一万条
数据中的Key为string类型,要求非空且字符长度不超过80个字节
当数据中的Value为string类型时,允许为空,字符长度不超过8192个字节
import dataPreferences from'@ohos.data.preferences'
实例名字命名为dataPreferences
需要在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()等
entryAbility.ets
onCreate(want, launchParam) {
globalThis.abilityWant = want;
...
PreferencesUtil.saveDefaultFontSize(Constants.SET_SIZE_STANDARD);
}
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方法处,去读取数据