鸿蒙5.0开发【关于emitter、eventHub的使用场景】应用运维

Emitter主要提供线程间发送和处理事件的能力,包括对持续订阅事件或单次订阅事件的处理、取消订阅事件、发送事件到事件队列等。

  1. 订阅事件
import { promptAction } from '@kit.ArkUI'; 
import { emitter } from '@kit.BasicServicesKit'; 
 
const TAG: string = 'ThreadModel';
// 定义一个eventId为1的事件 
let event: emitter.InnerEvent = { 
  eventId: 1 
}; 
 
// 收到eventId为1的事件后执行该回调 
let callback = (eventData: emitter.EventData): void => { 
  promptAction.showToast({ 
    message: JSON.stringify(eventData) 
  }); 
}; 
 
// 订阅eventId为1的事件 
emitter.on(event, callback); 
promptAction.showToast({ 
  message: $r('app.string.emitter_subscribe_success_toast') 
});
  1. 发送事件

    import { emitter } from '@kit.BasicServicesKit';
    
// 定义一个eventId为1的事件,事件优先级为Low 
let event: emitter.InnerEvent = { 
  eventId: 1, 
  priority: emitter.EventPriority.LOW 
}; 
 
let eventData: emitter.EventData = { 
  data: { 
    content: 'c', 
    id: 1, 
    isEmpty: false 
  } 
}; 
 
// 发送eventId为1的事件,事件内容为eventData 
emitter.emit(event, eventData);

EventHub提供了线程内发送和处理事件的能力,包括对事件订阅、取消订阅、触发事件等。以UIAbility组件与UI之间的数据同步为例,具体使用方法可以参考UIAbility组件与UI的数据同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值