HarmonyOS 基础技术赋能之 公共事件(CommonEvent)开发 原创 精华
引言
在HarmonyOS通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。
公共事件可分为系统公共事件和自定义公共事件。
系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户程序。 公共事件包括:终端设备用户可感知的亮灭屏事件,以及系统关键服务发布的系统事件(例如:USB插拔,网络连接,系统升级)等。
自定义公共事件:应用自定义一些公共事件用来处理业务逻辑。
场景介绍
每个应用都可以订阅自己感兴趣的公共事件,订阅成功后且公共事件发布后,系统会把其发送给应用。这些公共事件可能来自系统、其他应用和应用自身。HarmonyOS提供了一套完整的API,支持用户订阅、发布和接收公共事件。发布公共事件需要借助CommonEventData对象,接收公共事件需要继承CommonEventSubscriber类并实现onReceiveEvent回调函数。
开发者可以发布四种公共事件:无序的公共事件、带权限的公共事件、有序的公共事件、粘性的公共事件。
本文主讲无序的公共事件,其他类型事件,可参考华为官方开发文档学习。
指南
1.发布公共事件:
2. 订阅公共事件
1)创建CommonEventSubscriber派生类,在onReceiveEvent()回调函数中处理公共事件。
2)构造MyCommonEventSubscriber对象,调用CommonEventManager. subscribeCommonEvent()接口进行订阅。
3)针对在onReceiveEvent中不能执行耗时操作的限制,可以使用CommonEventSubscriber的goAsyncCommonEvent()来实现异步操作,函数返回后仍保持该公共事件活跃,且执行完成后必须调用。
3. 退订公共事件:
实现效果
1.启动APP时,如下图:
2. 先点击“订阅公共事件”,后点击“发布无序公共事件”。打印的log:
附上源码
1.MainAbilitySlice
2.LogUtils
3. xml 布局文件:
更多原创内容请关注:软通动力HarmonyOS学院
张老师这段时间很高产
张老师很勤快