文
章
目
录
章
目
录
本文主要讲解关于HarmonyOS 用户首选项数据持久化详解相关内容,让我们来一起学习下吧!
HarmonyOS 数据持久化能力- 用户首选项(Preferences)
用户首选项(Preferences):以文本的形式保存数据,使用时数据会加载到内存中,范围速度快,效率高,但是不适合存储大量数据。
用户首选项(Preferences)
通过Preferences 提供接口,将持久化文件加载Preferences实例中,每一个文件对应一个Preferences 实例,系统会将Preferences实例存储在内存中,达到快速,高效访问的效果。
约束条件
- 键必须为string 类型,不能为空并且长度小于80个字节。
- 值(Value)为string 类型时,可以为空,最大限制为 8192个字节。
- 存储数据不要超过1万条,否则会造成内存较大开销。
核心功能
核心功能,均以异步接口的形式提供。除常用的get(获取)、has(判断是否存在)、put(写入)、delete(时删除)、flush(持久化到文件)等功能外,还提供on(订阅数据变更)、off(取消订阅)功能,便于应用根据数据变化进行业务处理。
封装事例:
import dataPreferences from '@ohos.data.preferences';
import { IMDatabaseConst } from '../service/IMDatebaseConst';
let context = getContext(this)
let preference: dataPreferences.Preferences
class IMPreference {
async getPreferences() {
try {
preference = await dataPreferences.getPreferences(context, IMDatabaseConst.PREFERENCES_NAME)
}
catch (err) {
console.error(`error:${err}`)
}
}
async deletePreferences() {
try {
await dataPreferences.deletePreferences(context, IMDatabaseConst.PREFERENCES_NAME);
} catch(err) {
console.error('TAG', `Failed to delete preferences, Cause: ${err}`);
};
}
async putPreference(key: string, value: string) {
if (!key || !value) {
return
}
if (!preference) {
await this.getPreferences();
}
// The fruit name and fruit quantity data entered by the user are saved to the cached Preference instance.
try {
await preference.put(key, value);
} catch (err) {
console.error('TAG', `Failed to put value, Cause: ${err}`);
}
// Store the Preference instance in the preference persistence file
await preference.flush();
}
/**
* Get preference data.
*/
async getPreference(key: string) {
if (!key) {
return
}
let value: number | string | boolean | Array<number> | Array<string> | Array<boolean>;
if (!preference) {
await this.getPreferences();
}
try {
value = await preference.get(key, '')
} catch (err) {
console.error('TAG', `Failed to get value, Cause: ${err}`)
}
// If the data is empty, a message is displayed indicating that data needs to be written.
if (value === '') {
return
}
return value;
}
}
export default new IMPreference();
以上就是关于HarmonyOS 用户首选项数据持久化详解相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!