HarmonyOS 鸿蒙Next @ohos.data.preferences 数据处理
HarmonyOS 鸿蒙Next @ohos.data.preferences 数据处理
在使用@ohos.data.preferences 数据持久存储时,使用put保存了一个字符串变量,在get是得到的是一个对象,
preferences.put(CommonConstants.PREFERENCES_KEY_UUID,uuid,(err)=>{
if(err){
console.error(code:${err.code},message:${err.message}
)
return
}
preferences.flush()
})
put不使用变量,直接获取到的是保存的字符串
preferences.put(CommonConstants.PREFERENCES_KEY_UUID,‘xxx’,(err)=>{
if(err){
console.error(code:${err.code},message:${err.message}
)
return
}
preferences.flush()
})
试试下面的demo:
import dataPreferences from '@ohos.data.preferences';
import { BusinessError } from '@kit.BasicServicesKit';
import { util } from '@kit.ArkTS';
import preferences from '@ohos.data.preferences';
let context: Context = getContext(this)
function creatUuid(): string {
let rand = util.generateRandomUUID(true)
console.info(`UUID IS:` + rand)
return rand
}
function T() {
let preferences: dataPreferences.Preferences | null = null;
dataPreferences.getPreferences(context, 'myStore', (err: BusinessError, val: dataPreferences.Preferences) => {
if (err) {
console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
return;
}
preferences = val;
console.info("Succeeded in getting preferences.");
let uuid: string = creatUuid()
preferences.put('startup', uuid, (err: BusinessError) => {
if (err) {
console.error("Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
return;
}
preferences?.flush()
console.info("Succeeded in putting value of 'startup'.");
})
})
}
function T1() {
let preferences: dataPreferences.Preferences | null = null;
dataPreferences.getPreferences(context, 'myStore', (err: BusinessError, val: dataPreferences.Preferences) => {
if (err) {
console.error("Failed to get preferences. code =" + err.code + ", message =" + err.message);
return;
}
preferences = val;
console.info("Succeeded in getting preferences.");
preferences.get('startup', -1, (err: BusinessError, val: dataPreferences.ValueType) => {
if (err) {
console.error("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
return;
}
console.info("Succeeded in getting value of 'startup'. val: " + val);
if (typeof (val) == "string") {
console.info("val is string")
} else {
console.info("val is not string")
}
})
})
}
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button("添加数据").onClick((event: ClickEvent) => {
T()
})
Button("取出数据").onClick((event: ClickEvent) => {
T1()
})
}
.width('100%')
}
.height('100%')
}
}
在HarmonyOS(鸿蒙)系统中,@ohos.data.preferences
模块提供了一套轻量级的数据存储解决方案,适用于存储简单的键值对数据。这一模块类似于Android中的SharedPreferences,但针对鸿蒙系统进行了优化和适配。
使用@ohos.data.preferences
进行数据处理时,你首先需要获取到Preferences
对象。这通常通过Preferences.getPreferences(context, fileName, mode)
方法实现,其中context
是当前的上下文环境,fileName
是偏好设置文件的名称,mode
是文件的打开模式(如读写模式)。
获取到Preferences
对象后,你可以使用putXXX(key, value)
方法存储数据,其中XXX
代表数据类型(如Int、String等)。相应地,使用getXXX(key, defaultValue)
方法可以读取存储的数据。如果指定的键不存在,则返回默认值。
此外,Preferences
还提供了remove(key)
方法来删除指定键的数据,以及clear()
方法来清空所有存储的数据。
需要注意的是,Preferences
数据存储是异步的,但鸿蒙系统提供了同步的API接口,以确保数据的一致性和完整性。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html