HarmonyOS鸿蒙Next中ohos.data.preferences数据存储
HarmonyOS鸿蒙Next中ohos.data.preferences数据存储 使用 preferences 存储数据,在存入之后,再次进入 app,有一定几率获取不到存储数据,也就是存储数据丢失。
实现方式:
- App 登陆之后存储用户信息,登录之后返回,正常使用存储信息。
- App 杀掉进程,再次进入,会出现读取存储异常问题。
没有持久化,首选项的数据是存在缓存里的,杀点后台就没了,尝试flush。
private setCacheData(cacheStr: string) {
this.preferences?.putSync('AHCommentBarEmojiKey', cacheStr);
console.log('cui== 存数据 == ' + cacheStr)
this.preferences?.flush((err: BusinessError) => {
if (err) {
console.error(`Failed to flush. Code:${err.code}, message:${err.message}`);
return;
}
console.info('Succeeded in flushing.');
})
}
更多关于HarmonyOS鸿蒙Next中ohos.data.preferences数据存储的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,ohos.data.preferences
模块用于轻量级数据存储,支持存储键值对数据。它主要用于存储应用配置、用户偏好设置等小规模数据。Preferences
实例是线程安全的,支持多线程并发访问。
Preferences
数据存储在应用沙盒目录下,每个应用有独立的存储空间。数据以XML文件形式存储,文件名为{name}.xml
,其中{name}
为创建Preferences
实例时指定的名称。
主要接口包括:
getPreferences(context: Context, name: string): Preferences
:获取或创建Preferences
实例。putString(key: string, value: string): void
:存储字符串数据。getString(key: string, defaultValue: string): string
:获取字符串数据。putInt(key: string, value: number): void
:存储整型数据。getInt(key: string, defaultValue: number): number
:获取整型数据。putBoolean(key: string, value: boolean): void
:存储布尔数据。getBoolean(key: string, defaultValue: boolean): boolean
:获取布尔数据。flush(): void
:将数据写入文件。clear(): void
:清空所有数据。
Preferences
支持异步操作,可通过async
和await
关键字实现。数据存储是持久化的,应用重启后数据仍然存在。
在HarmonyOS鸿蒙Next中,ohos.data.preferences
提供了轻量级的键值对数据存储功能,适用于存储应用的简单配置和用户偏好设置。主要类为 Preferences
,通过 getPreferences
方法获取实例。数据以 XML 文件形式存储,支持基本数据类型(如字符串、整型、布尔等)。数据操作包括 put
、get
、delete
等方法,支持异步和同步操作。使用 flush
方法将数据持久化。Preferences
适用于小规模、非敏感数据的存储。