EventHub、Emitter、commonEventManager 三种事件能力区别与选择

EventHub、Emitter、commonEventManager 三种事件能力区别与选择

HarmonyOS
2024-05-28 21:03:23
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
NingJ

背景与分析

HarmonyOS系统上主要提供了3种事件相关的模块,分别是EventHub、Emitter、commonEventManager。

它们3个模块使用上非常相识,都是订阅+发布的形式。但是实际应用场景有很大的不同。

EventHub

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

特点:

  •  仅stage模型可用
  • 通过context直接获取,作用范围与使用的context等价

Emitter

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

特点:

  •  FA与Stage都可以用
  • 可以与worker搭配使用

commonEventManager

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

特点:

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

如何选择

主线程内通信:EventHub

主线程与Worker间通信:Emitter

应用间通信:commonEventManager

获取系统公共事件信息(低电量、充电信息):commonEventManager

已于2024-5-29 22:05:19修改
分享
微博
QQ
微信
回复
2024-05-29 22:04:53
相关问题
EmitterEventHub区别是什么?
340浏览 • 1回复 待解决
解码后的数据帧送显的三种方式
239浏览 • 1回复 待解决
关于emittereventHub的使用场景
2485浏览 • 1回复 待解决
视频进度滑动条的三种实现方式
1303浏览 • 1回复 待解决
candidate 会在哪三种情况下退出?
3851浏览 • 1回复 待解决
HarmonyOS 事件订阅 emitter问题
436浏览 • 1回复 待解决
LocalstorageAppStorage区别
1965浏览 • 1回复 待解决
TaskPoolWorker的区别
1971浏览 • 1回复 待解决
HarmonyOS ArrayArrayList的区别
754浏览 • 1回复 待解决
@StorageProp@StorageLink有什么区别
642浏览 • 1回复 待解决