HarmonyOS的公共事件与通知笔记
公共事件与通知
鸿蒙(HarmonyOS)的公共事件与通知是其系统中用于应用程序间通信和事件处理的重要机制。公共事件是指通过广播的形式发出的事件,即一个事件发布者会将消息发给多个事件接受者。通知与公共事件的主要区别是接收者不同,通知的接收者通常是系统自带的通知栏。本文主要介绍关于公共事件与通知的基本知识。
一、公共事件
公共事件是指通过广播的形式发出的事件,即一个事件发布者会将消息发给多个事件接受者。
公共事件发布者可以是系统、应用程序自身或者其他应用程序。
1.基础概念
1.1.公共事件分类
- 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户的应用程序。
- 自定义公共事件:应用程序定义的期望特定订阅者可以接受的公共事件。
1.2.公共事件的开发
- 公共事件订阅开发
- 公共事件发布开发
- 公共事件取消订阅开发
1.3.公共事件处理接口
import commonEvent from '@hoos.commonEvent'
1.4.自定义公共事件的类型
- 有序公共事件:多个订阅者有依赖关系或者对处理顺序有要求,也就是订阅者有优先级。如果订阅者的优先级高,优先处理公共事件内容或处理结果,甚至终止公共事件。低优先级的订阅者依赖于高优先级订阅者对该事件的处理结果。当公共事件发布数据的属性isOrdered的值为真时,为有序公共事件
- 无需公共事件:没有优先级概念,相当于广播
- 带权限的公共事件:即使订阅操作是发布公共事件之后进行的,订阅者也能收到公共事件
- 粘性公共事件:该公共事件有一定访问权限,为公共事件提供了一定的安全机制
2.具体实现
2.1发布公共事件
发布没有指定信息的公共事件的示例:
import Base from '@ohos.base';
import commonEventManager from '@ohos.commonEventManager';
const TAG: string = 'ProcessModel';
// 发布公共事件,其中的event字段需要替换为实际的事件名称。
commonEventManager.publish('event', (err: Base.BusinessError) => {
if (err) {
console.info(`PublishCallBack err = ${
JSON.stringify(err)}`);
} else {
console.info(`Publish successfulaaaaa`);
}
});
@Entry
@Component
struct Index {
@State i: number = 1
build() {
Column() {
Text(`数据 ${
this.i}`)
.fontSize(50)
Button('按钮')
.onClick(() => {
this.i += this.i
})
.width('100%')
.padding(20)
.

最低0.47元/天 解锁文章
632

被折叠的 条评论
为什么被折叠?



