HarmonyOS 鸿蒙Next 使用Preferences存储数据,重新打开元服务后数据没有了

发布于 1周前 作者 bupafengyu 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 使用Preferences存储数据,重新打开元服务后数据没有了

使用Preferences保存数据,TS代码有变动,重启打开元服务后数据没了,请问是什么原因导致的?

const PREFERENCES_NAME = 'theme.db'
const THEME_NAMES: string[] = ['default', 'simplicity', 'pomeloWhtie']
let preferenceTheme: preferences.Preferences | null = null
async testPrefenrence(){
//从内存中获取轻量级存储db文件
await this.getPreferencesFromStorage()
//从轻量级存储db文件中获取键名为theme的键值
this.nowTheme = await this.getPreference()
console.info(`nowTheme__get ${this.nowTheme}`)
}
async getPreferencesFromStorage() {
let context = getContext(this) as Context
preferenceTheme = await preferences.getPreferences(context, PREFERENCES_NAME)
}

async putPreference(data: string) {
Logger.info(TAG, `Put begin`)
if (preferenceTheme !== null) {
await preferenceTheme.put('theme', data)
await preferenceTheme.flush()
}
}

async getPreference(): Promise<string> {
Logger.info(TAG, `Get begin`)
let theme: string = ''
if (preferenceTheme !== null) {
theme = await preferenceTheme.get('theme', 'default') as string
return theme
}
return theme
}


更多关于HarmonyOS 鸿蒙Next 使用Preferences存储数据,重新打开元服务后数据没有了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
关于preferences保存数据关闭后再去获取为空的问题,IDE每次run项目(执行的命令都是先卸载当前推的hap包,再把要run的项目的hap包推上去),应用都会被卸载,其在设备上产生的数据库文件及临时文件也会被移除。 如果需要保存数据,可以在‘Run/Debug Configurations’-‘General’-‘Installation Options’-中勾选‘Keep Application Data’。

更多关于HarmonyOS 鸿蒙Next 使用Preferences存储数据,重新打开元服务后数据没有了的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,若使用Preferences存储数据后重新打开元服务(可能指的是应用或服务)发现数据丢失,通常可能的原因及处理方式如下:

  1. 存储作用域问题:Preferences的存储作用域可能是临时的,如果使用的是如Context.MODE_PRIVATE_TEMPORARY这样的临时存储方式,数据在应用关闭后可能会被清除。确保使用Context.MODE_PRIVATE或其他持久化存储方式。

  2. 数据未正确保存:检查代码逻辑,确保数据在写入Preferences后调用apply()commit()方法(对于鸿蒙的Preferences API,具体方法名称可能有所不同,需参考官方文档)。

  3. 数据读取错误:验证读取Preferences的代码逻辑,确保使用正确的键(key)和正确的Preferences实例。

  4. 版本兼容性问题:确认HarmonyOS版本与Preferences API的兼容性,有时新版本的操作系统可能引入变更,导致旧代码不再适用。

  5. 清理缓存或数据:用户可能手动清理了应用的缓存或数据,导致Preferences内容丢失。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部