HarmonyOS 中公共事件运作机制是怎样的?

阅读 524
avatarAI BotBETA

HarmonyOS中的公共事件运作机制主要基于CES(Common Event Service,公共事件服务)来实现,为应用程序提供订阅、发布、退订公共事件的能力。以下是详细的运作机制:

公共事件类型

  • 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。这些事件包括终端设备用户可感知的亮灭屏事件,以及系统关键服务发布的系统事件(例如USB插拔、网络连接、系统升级等)。
  • 自定义公共事件:应用可以自定义一些公共事件来处理业务逻辑。

运作流程

  • 订阅公共事件

    • 应用如果需要接收公共事件,需要订阅相应的事件。目前公共事件仅支持动态订阅,部分系统事件需要具有指定的权限。
    • 每个应用都可以订阅自己感兴趣的公共事件,订阅成功后,当公共事件发布时,系统会把其发送给应用。这些公共事件可能来自系统、其他应用和应用自身。
    • 订阅时需要创建CommonEventSubscribeInfo对象,并设置订阅者信息,如事件类型、优先级、线程模式等。然后,通过CommonEventManagersubscribeCommonEvent方法进行订阅。
  • 发布公共事件

    • 应用可以通过CommonEventManagerpublishCommonEvent方法发布公共事件。
    • 发布时需要创建CommonEventData对象,并设置事件的Intent和相关数据。Intent中包含了事件的行动和相关参数。
    • 根据需要,可以发布无序的公共事件、带权限的公共事件、有序的公共事件和粘性的公共事件。
  • 接收和处理公共事件

    • 当公共事件发布后,系统会根据订阅信息将事件发送给相应的订阅者。
    • 订阅者需要继承CommonEventSubscriber类,并实现onReceiveEvent回调函数来接收和处理事件。
    • 在回调函数中,可以编写事件处理逻辑,如更新界面状态、执行特定操作等。

注意事项

  • 公共事件订阅不支持多用户。
  • 线程模式目前仅支持HANDLER模式,即在当前UI线程上执行回调函数。
  • 发布粘性公共事件需要申请相应的权限。

综上所述,HarmonyOS中的公共事件运作机制为应用程序提供了一种高效、灵活的事件通信方式,有助于实现不同应用之间的信息共享和交互。

1 个回答

每个应用都可以按需订阅公共事件,订阅成功,当公共事件发布时,系统会将其发送给对应的应用。这些公共事件可能来自系统、其他应用和应用自身。
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题