HarmonyOS 鸿蒙Next PersistentStorage存储数据后,退出关闭应用,重新打开应用后AppStorage.get获取不到数据,得到的是undefined
HarmonyOS 鸿蒙Next PersistentStorage存储数据后,退出关闭应用,重新打开应用后AppStorage.get获取不到数据,得到的是undefined
数据是设置上了,但是下次打开的时候获取仍然是undefined,我看其他小伙伴也有遇到这个问题的,说是勾选keep application data,我看也是勾上了的啊,为什么还是undefined
更多关于HarmonyOS 鸿蒙Next PersistentStorage存储数据后,退出关闭应用,重新打开应用后AppStorage.get获取不到数据,得到的是undefined的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
1、PersistentStorage和UIContext相关联,需要在UIContext明确的时候才可以调用
2、在使用接口访问AppStorage中的属性之前需要调用PersistentStorage.persistProp。
可以参考如下代码做改造:
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage.loadContent('pages/testTarget', (err) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
});
let window = windowStage.getMainWindow()
window.then(window => {
let uicontext = window.getUIContext()
uicontext.runScopedTask(() => {
PersistentStorage.PersistProp('aProp2', 47);
const path = AppStorage.get<number>('aProp2')
if (path == 47) {
console.log(`path is not OK`)
AppStorage.setOrCreate("aProp2", 50)
} else {
console.log(`path is OK`)
}
})
})
}
更多关于HarmonyOS 鸿蒙Next PersistentStorage存储数据后,退出关闭应用,重新打开应用后AppStorage.get获取不到数据,得到的是undefined的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS鸿蒙Next PersistentStorage存储数据后,退出关闭应用,重新打开应用后AppStorage.get获取不到数据的问题,可能的原因及解决方案如下:
-
存储路径或键名错误:
- 确认在存储数据时使用的路径和键名与获取数据时使用的完全一致。任何微小的差异(如空格、大小写)都可能导致数据无法正确检索。
-
数据未正确存储:
- 检查存储数据时的代码逻辑,确保数据确实被成功写入PersistentStorage。可以通过日志打印等方式验证存储操作是否执行成功。
-
存储权限问题:
- 确认应用具有写入和读取PersistentStorage的权限。权限不足可能导致数据无法存储或读取。
-
应用重启后的数据恢复:
- HarmonyOS在应用重启后可能需要特定的机制来恢复PersistentStorage中的数据。检查应用是否有实现相应的数据恢复逻辑。
-
存储限制或Bug:
- 检查是否存在已知的存储限制或系统Bug,这可能需要查阅HarmonyOS的官方文档或社区论坛以获取更多信息。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html