HarmonyOS的公共事件与通知笔记

公共事件与通知

鸿蒙(HarmonyOS)的公共事件与通知是其系统中用于应用程序间通信和事件处理的重要机制。公共事件是指通过广播的形式发出的事件,即一个事件发布者会将消息发给多个事件接受者。通知与公共事件的主要区别是接收者不同,通知的接收者通常是系统自带的通知栏。本文主要介绍关于公共事件与通知的基本知识。

一、公共事件

公共事件是指通过广播的形式发出的事件,即一个事件发布者会将消息发给多个事件接受者。

公共事件发布者可以是系统、应用程序自身或者其他应用程序。

1.基础概念

1.1.公共事件分类

  • 系统公共事件:系统将收集到的事件信息,根据系统策略发送给订阅该事件的用户的应用程序。
  • 自定义公共事件:应用程序定义的期望特定订阅者可以接受的公共事件。

1.2.公共事件的开发

  1. 公共事件订阅开发
  2. 公共事件发布开发
  3. 公共事件取消订阅开发

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)
        .
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值