HarmonyOS 鸿蒙Next分布式数据对象distributedDataObject的生命周期问题

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next分布式数据对象distributedDataObject的生命周期问题

尝试使用distributedDataObject在不同设备上实现分布式数据共享,主页面使用navigation组件进行路由管理,搭配navrouter进行路由跳转。然后在navdestination子页面中创建了一个分布式数据对象,随后返回主页面。奇怪的是再次访问同一个navdestination子页面时会闪退.

报错信息显示:

Error message:create table failed

Stacktrace:

Cannot get SourceMap info, dump raw stack:

    at joinSession (/home/wu/wisehealth/wisehealth/foundation/distributeddatamgr/data_object/interfaces/jskits/distributed_data_object.js:135:135)

Cannot get SourceMap info, dump raw stack:

    at setSessionId (/home/wu/wisehealth/wisehealth/foundation/distributeddatamgr/data_object/interfaces/jskits/distributed_data_object.js:282:282)

    at changeSession (/ets/pages/Rounder.ets:129:7)

    at anonymous (/ets/pages/Rounder.ets:92:11)

Cannot get SourceMap info, dump raw stack:

    at anonymous (/home/wu/wisehealth/wisehealth/foundation/ability/ability_runtime/frameworks/js/napi/app/context/context.js:55:55)

Cannot get SourceMap info, dump raw stack:

    at emit (/home/wu/wisehealth/wisehealth/foundation/ability/ability_runtime/frameworks/js/napi/app/context/context.js:54:54)

    at onReceiveEvent (/ets/model/blescanner.ts:31:35)

初步怀疑是navigation中navidestination返回主页面后并没有在pagestack中删除(不过查到的似乎是被自动删除)分布式数据对象仍在运行
cke_50083.png

在子页面Rounder中打印console.info查看,返回主页面后确实还在运行。

非常疑惑这是navdestination的生命周期问题还是分布式数据对象存在的什么生命周期设定


更多关于HarmonyOS 鸿蒙Next分布式数据对象distributedDataObject的生命周期问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

楼主您好,该问题需要demo代码进行分析,建议通过在线提单提交问题。

支持 - 在线提单 - 华为开发者联盟 (huawei.com)

更多关于HarmonyOS 鸿蒙Next分布式数据对象distributedDataObject的生命周期问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


关于HarmonyOS 鸿蒙Next分布式数据对象distributedDataObject的生命周期问题,以下是一个简要的概述:

分布式数据对象distributedDataObject在HarmonyOS 鸿蒙Next中的生命周期主要包括未初始化、本地数据对象、分布式数据对象三个阶段。

  1. 未初始化:此时,数据对象未实例化或已被销毁,无法进行任何数据操作。
  2. 本地数据对象:数据对象已创建,但尚未加入分布式网络,无法进行跨设备数据同步。此时,数据仅存储在本地设备上。
  3. 分布式数据对象:当数据对象加入分布式网络,并设置相同的SessionId后,即可成为分布式数据对象。此时,数据可以在多个设备之间无缝流动,实现跨设备数据同步。若设备掉线或SessionId被清空,分布式数据对象将退化为本地数据对象。

需要注意的是,分布式数据对象的生命周期管理涉及多个方面,包括创建、同步、监听和销毁等。开发者需要仔细处理这些环节,以确保数据的正确性和一致性。

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

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!