發(fā)送和處理進(jìn)程內(nèi)事件的能力

2024-01-23 12:58 更新

本模塊提供發(fā)送和處理進(jìn)程內(nèi)事件的能力,包括對持續(xù)訂閱事件或單次訂閱事件的處理,取消訂閱事件,發(fā)送事件到事件隊(duì)列。

說明

本模塊首批接口從API version 7開始支持。

導(dǎo)入模塊

  1. import emitter from '@ohos.events.emitter'

權(quán)限列表

emitter.on

on(event: InnerEvent, callback: Callback<EventData>): void

持續(xù)訂閱某個(gè)事件以及接收事件的回調(diào)處理。

系統(tǒng)能力: SystemCapability.Notification.Emitter

參數(shù):

參數(shù)名

類型

必填

說明

event

InnerEvent

持續(xù)訂閱的事件,其中EventPriority,在訂閱事件時(shí)無需指定,也不生效

callback

Callback<EventData>

接收訂閱事件時(shí)的回調(diào)處理

示例:

  1. let innerEvent = {
  2. eventId: 1
  3. };
  4. function EmitterCallback(eventData) {
  5. console.info('callback');
  6. }
  7. emitter.on(innerEvent, EmitterCallback);

emitter.once

once(event: InnerEvent, callback: Callback<EventData>): void

單次訂閱某個(gè)事件以及接收事件的回調(diào)處理,接收到回調(diào)處理后自動(dòng)取消訂閱。

系統(tǒng)能力: SystemCapability.Notification.Emitter

參數(shù):

參數(shù)名

類型

必填

說明

event

InnerEvent

單次訂閱的事件,其中EventPriority,在訂閱事件時(shí)無需指定,也不生效

callback

Callback<EventData>

接收訂閱事件時(shí)的回調(diào)處理

示例:

  1. let innerEvent = {
  2. eventId: 1
  3. };
  4. function EmitterCallback(eventData) {
  5. console.info('once callback');
  6. };
  7. emitter.once(innerEvent, EmitterCallback);

emitter.off

off(eventId: number): void

取消訂閱某個(gè)事件。

系統(tǒng)能力: SystemCapability.Notification.Emitter

參數(shù):

參數(shù)名

類型

必填

說明

eventId

number

事件ID

示例:

  1. emitter.off(1);

emitter.emit

emit(event: InnerEvent, data?: EventData): void

發(fā)送一個(gè)事件到事件隊(duì)列。

系統(tǒng)能力: SystemCapability.Notification.Emitter

參數(shù):

參數(shù)名

類型

必填

說明

event

InnerEvent

發(fā)送的事件

data

EventData

事件攜帶的數(shù)據(jù)

示例:

  1. let eventData = {
  2. data: {
  3. "content": "c",
  4. "id": 1,
  5. }};
  6. let innerEvent = {
  7. eventId: 1,
  8. priority: emitter.EventPriority.HIGH
  9. };
  10. emitter.emit(innerEvent, eventData);

EventPriority

用于表示事件被投遞的優(yōu)先級。

系統(tǒng)能力: 以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為 SystemCapability.Notification.Emitter

名稱

說明

IMMEDIATE

0

表示事件被立即投遞。

HIGH

1

表示事件先于LOW優(yōu)先級投遞。

LOW

2

表示事件優(yōu)于IDLE優(yōu)先級投遞,事件的默認(rèn)優(yōu)先級是LOW。

IDLE

3

表示在沒有其他事件的情況下,才投遞該事件。

InnerEvent

進(jìn)程內(nèi)的事件。

系統(tǒng)能力: 以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為 SystemCapability.Notification.Emitter

名稱

類型

可讀

可寫

說明

eventId

number

事件的ID,由開發(fā)者定義用來辨別事件。

priority

EventPriority

事件被投遞的優(yōu)先級。

EventData

發(fā)送事件時(shí)傳遞的數(shù)據(jù)。

系統(tǒng)能力: 以下各項(xiàng)對應(yīng)的系統(tǒng)能力均為 SystemCapability.Notification.Emitter

名稱

類型

可讀

可寫

說明

data

[key: string]: any

發(fā)送事件時(shí)傳遞的數(shù)據(jù),數(shù)據(jù)類型支持字符串、整型和布爾型。

其中字符串長度最大為10240字節(jié)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號