HarmonyOS 鸿蒙Next类似Android的SharedPreferences存储是什么?
HarmonyOS 鸿蒙Next类似Android的SharedPreferences存储是什么?
preferences.has('startup', (err, val) => {
if (err) {
console.error(`Failed to check the key 'startup'. Code:${err.code}, message:${err.message}`);
return;
}
if (val) {
console.info("The key 'startup' is contained.");
} else {
console.info("The key 'startup' does not contain.");
// 此处以此键值对不存在时写入数据为例
try {
preferences.put('startup', 'auto', (err) => {
if (err) {
console.error(`Failed to put data. Code:${err.code}, message:${err.message}`);
return;
}
console.info('Succeeded in putting data.');
});
} catch (err) {
console.error(`Failed to put data. Code: ${err.code},message:${err.message}`);
}
}
})
} catch (err) {
console.error(`Failed to check the key 'startup'. Code:${err.code}, message:${err.message}`);
}
通过用户首选项实现数据持久化-应用数据持久化-ArkData(方舟数据管理)-应用框架 - 华为HarmonyOS开发者 (huawei.com)
我在代码中,尝试使用这个但有报错
Property 'has' does not exist on type 'typeof preferences'. <ArkTSCheck>
更多关于HarmonyOS 鸿蒙Next类似Android的SharedPreferences存储是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可以用await 来修饰,put数据和get数据可以参考如下代码:
async putPreferenceValue(key: string, value: preferences.ValueType){
if (!this.preferences) {
console.debug(`Preferences尚未初始化!`)
return
}
try {
// 写入数据
await this.preferences.put(key, value)
// 刷盘
await this.preferences.flush()
console.debug(`保存Preferences[${key} = ${value}]成功`)
} catch (e) {
console.debug(`保存Preferences[${key} = ${value}]失败`, JSON.stringify(e))
}
}
async getPreferenceValue(key: string, defaultValue: preferences.ValueType){
if (!this.preferences) {
console.debug(`Preferences尚未初始化!`)
return
}
try {
// 读数据
let value = await this.preferences.get(key, defaultValue)
console.debug(`读取Preferences[${key} = ${value}]成功`)
return value
} catch (e) {
console.debug(`读取Preferences[${key}]失败`, JSON.stringify(e))
return
}
}
目前写法需要这样处理
getsync和putSync应该满足您的需求,文档如下:
更多关于HarmonyOS 鸿蒙Next类似Android的SharedPreferences存储是什么?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next中,类似于Android的SharedPreferences存储机制是SimpleKVStore。
SimpleKVStore是鸿蒙系统提供的一种轻量级的键值对存储方式,它允许开发者以简单的键值对形式存储和读取数据。这种存储方式非常适合用于存储应用程序的配置信息、用户偏好设置等轻量级数据。
与Android的SharedPreferences类似,SimpleKVStore也支持多种数据类型,包括整型、浮点型、字符串等,并且提供了同步和异步的API接口,以满足不同场景下的数据存储需求。
在使用SimpleKVStore时,开发者需要先获取一个KVStore实例,然后通过该实例的put、get等方法来存储和读取数据。此外,SimpleKVStore还支持数据监听功能,可以监听数据的变化并做出相应处理。
需要注意的是,SimpleKVStore的存储位置是在设备的内部存储空间中,因此它的访问速度较快,但存储空间相对有限。因此,在存储大量数据时,开发者需要考虑使用其他存储方式,如文件存储或数据库存储等。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html