HarmonyOS 鸿蒙Next中通信API区别

HarmonyOS 鸿蒙Next中通信API区别 @ohos.events.emitter (Emitter)

@ohos.commonEventManager (公共事件模块)

这两个有啥区别呢,项目跨页面等消息通知应该采用那个?

3 回复

EventHub
模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。

特点:

  • 通过context直接获取,作用范围与使用的context等价

Emitter
模块提供了在同一进程不同线程间,或同一进程同一线程内,发送和处理事件的能力,包括持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列的能力。

特点:

  • 可以与worker搭配使用

commonEventManager
模块提供了公共事件相关的能力,包括发布公共事件、订阅公共事件、以及退订公共事件。

特点:

  • 订阅系统的公共事件,比如低电量提示、开始充电等。
  • 应用间通信,可以添加权限管控。

如何选择

  • 主线程内通信:EventHub
  • 主线程与Worker间通信:Emitter
  • 应用间通信:commonEventManager
  • 获取系统公共事件信息(低电量、充电信息):commonEventManager

commonEventManager 比如在多个线程订阅了事件,当事件发布时,多个线程都会响应

项目跨页面等消息通知推荐Emitter

更多关于HarmonyOS 鸿蒙Next中通信API区别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next中,通信API根据应用场景和功能需求被划分为不同的模块。主要区别如下:

  • IPC通信:用于进程间通信,支持跨进程调用,基于Binder机制实现,适用于高性能、低延迟的通信需求。

  • RPC通信:远程过程调用,支持跨设备通信,基于分布式能力实现,适用于设备间协同工作场景。

  • Socket通信:提供传统的TCP/UDP通信接口,适用于需要直接管理网络连接的场景。

  • 消息队列:支持异步通信,适用于解耦生产者和消费者,提高系统响应速度和吞吐量。

  • 事件总线:提供发布/订阅模式,适用于组件间松耦合的通信,支持跨线程、跨进程事件传递。

  • 分布式数据管理:支持跨设备数据同步和共享,适用于多设备间的数据一致性维护。

每种通信API都有其特定的应用场景和性能特点,开发者需根据具体需求选择合适的通信方式。

在HarmonyOS(鸿蒙)Next中,通信API主要包括以下几种,各自有明确的用途和场景:

  1. 分布式数据管理(Distributed Data Management):用于跨设备数据共享和同步,支持分布式数据库和文件系统。
  2. 分布式任务调度(Distributed Task Scheduling):实现跨设备的任务调度和协同工作,确保任务在合适的设备上执行。
  3. 分布式软总线(Distributed Soft Bus):提供设备间通信的基础设施,支持设备发现、连接和数据传输。
  4. RPC(Remote Procedure Call):用于跨设备的远程方法调用,支持同步和异步通信。
  5. 消息队列(Message Queue):支持设备间的消息传递,确保消息的可靠性和顺序性。

这些API共同构建了HarmonyOS的分布式能力,确保设备间的高效通信和协同工作。

回到顶部