HarmonyOS鸿蒙Next中有没有类似EventBus的消息通信机制

HarmonyOS鸿蒙Next中有没有类似EventBus的消息通信机制 Android中可以通过EventBus完成消息通信,减少业务之间的耦合,在HarmonyOS中是否有类似的机制可以实现。

4 回复

关于消息机制可以参考2楼emitter相关知识,demo可参考如下代码:

import emitter from '@ohos.events.emitter';
import { Callback } from '@ohos.base';

export function emitterSub(eventId: number, eventCallback: Callback<emitter.EventData>) {
  let event: emitter.InnerEvent = {
    eventId: eventId
  }
  emitter.on(event, eventCallback)
}

export function emitterSend(eventId: number, eventParam: string) {
  let event: emitter.InnerEvent = {
    eventId: eventId
  }

  let eventData: emitter.EventData = {
    data: {
      param: eventParam
    }
  };

  emitter.emit(event, eventData)
}

更多关于HarmonyOS鸿蒙Next中有没有类似EventBus的消息通信机制的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个进程间通讯的事件管理, 类似于 EventBus

最好能有相关的参考样例,感谢

在HarmonyOS(鸿蒙)Next中,虽然没有直接提供名为“EventBus”的库,但系统内置了多种消息通信机制,可以实现类似的功能。例如:

  1. EventHub:用于组件之间的事件发布与订阅,类似于EventBus的功能,支持发布和接收事件。
  2. Ability间通信:通过startAbilitycallAbility方法,结合Intent进行消息传递。
  3. 分布式通信:使用DistributedDataManager实现跨设备的数据同步与消息传递。
  4. Observer模式:通过LiveDataPublishSubject等响应式编程工具实现数据监听。

开发者可以根据具体需求选择合适的通信机制。

回到顶部