zhangbo1_wd

新增线程间消息通信工具

... ... @@ -39,3 +39,7 @@ export { NumberFormatterUtils } from './src/main/ets/utils/NumberFormatterUtils'
// export { PermissionUtils } from './src/main/ets/utils/PermissionUtils'
export { ErrorToastUtils } from './src/main/ets/utils/ErrorToastUtils'
export { EmitterUtils } from './src/main/ets/utils/EmitterUtils'
export { EmitterEventId } from './src/main/ets/utils/EmitterEventId'
\ No newline at end of file
... ...
/**
* 线程间通信事件id枚举
*/
export enum EmitterEventId {
// 通知登出,事件id
FORCE_USER_LOGIN_OUT = 1
}
... ...
import emitter from '@ohos.events.emitter';
import HashMap from '@ohos.util.HashMap';
const TAG: string = 'EmitterUtils';
/**
* 线程间通信简单工具
* TODO 待优化
*/
export class EmitterUtils {
/**
* 发送空消息
* @param eventId 事件id
*/
static sendEmptyEvent(eventId: number) {
let event: emitter.InnerEvent = {
eventId: eventId,
priority: emitter.EventPriority.LOW
};
emitter.emit(event);
}
/**
* 发送消息
* @param eventId 事件id
* @param data 数据
*/
static sendEvent(eventId: number, data: { [key: string]: any; }) {
let event: emitter.InnerEvent = {
eventId: eventId,
priority: emitter.EventPriority.LOW
};
let eventData: emitter.EventData = {
data: data
};
emitter.emit(event, eventData);
}
/**
* 接收消息
* @param eventId 事件id
* @param callback 回调函数
*/
static receiveEvent(eventId: number, callback: (data?: { [key: string]: any; }) => void) {
let event: emitter.InnerEvent = {
eventId: eventId
};
// 收到eventId为1的事件后执行该回调
let callback1 = (eventData: emitter.EventData): void => {
callback(eventData.data)
};
// 订阅eventId为1的事件
emitter.on(event, callback1);
}
}
... ...