HarmonyOS PersistentStorage 持久化的数据重启应用后数据为空

调用 PersistentStorage.persistProp 持久化失败

  1. 在按钮 onClick 事件中执行 PersistentStorage.persistProp(‘aProp’, 47)
  2. 重启应用后在按钮 onClick 事件中执行 AppStorage.get<number>(‘aProp’); // 返回 undefined
HarmonyOS
2024-12-18 15:32:43
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
aquaa

PersistentStorage和UIContext相关联,需要在UIContext明确的时候才可以调用,可以通过在runScopedTask里明确上下文。如果没有在UIContext明确的地方调用,将导致无法持久化数据。

在onWindowStageCreate中调用示例如下:

windowStage.loadContent(‘pages/Index’, (err, data) => {
  if (err.code) {
    hilog.error(0x0000, ‘testTag’, ‘Failed to load the content. Cause: %{public}s’, JSON.stringify(err) ?? ‘’);
    return;
  }
  let window = windowStage.getMainWindow();
  window.then(win => {
    let uiContext = win.getUIContext();
    uiContext.runScopedTask(() => {
      PersistentStorage.persistProp(‘aProp’, 47);
      // AppStorage.setOrCreate(“aProp”, 50)
      console.log(11 $${AppStorage.get('aProp')})
    })
  })
  hilog.info(0x0000, ‘testTag’, ‘Succeeded in loading the content. Data: %{public}s’, JSON.stringify(data) ?? ‘’);
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
分享
微博
QQ
微信
回复
2024-12-18 18:32:45


相关问题
HarmonyOS 数据持久demo
887浏览 • 1回复 待解决
如何实现应用数据持久存储
3403浏览 • 1回复 待解决
PersistentStorage持久存储问题
1721浏览 • 0回复 待解决
HarmonyOS 重启应用后cookie丢失
1125浏览 • 1回复 待解决
数据持久遇到各种问题
1127浏览 • 1回复 待解决
数据持久方式有哪些?
2055浏览 • 1回复 待解决
关于数据持久使用问题
1190浏览 • 1回复 待解决
HarmonyOS 基本类型数据持久
966浏览 • 1回复 待解决
HarmonyOS 数据持久后同步问题
1098浏览 • 1回复 待解决
PersistentStorage如何持久一个对象?
3757浏览 • 1回复 待解决