HarmonyOS 鸿蒙Next emitter 移除通知问题

发布于 1周前 作者 yuanlaile 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next emitter 移除通知问题

在取消订阅后,再继续订阅,然后再发送通知时,订阅会收到两次通知,取消没用

//取消订阅
emitter.off("test001", () => {
console.info('callback');
});

//导入模块
import emitter from '@ohos.events.emitter';

//订阅通知
emitter.on("test001", () => {
console.info('callback');
});

//发送通知
let eventData: emitter.EventData = {
data: {
"content": "c",
"id": 1,
}
};
emitter.emit("test001", eventData);

更多关于HarmonyOS 鸿蒙Next emitter 移除通知问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
no use, useless

更多关于HarmonyOS 鸿蒙Next emitter 移除通知问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


emitter.on和emitter.off开启和关闭是针对于同一个回调函数进行处理的,这边分别传入了两个箭头函数,因此调用off时,会被认为是不同的函数,因此无法取消监听,可以尝试以下写法来修改您的监听:
emitterCallBack() {
  console.info('emitter on')
}

Button(‘emitter on’) .onClick(() => { emitter.on(“test001”, this.emitterCallBack); }) Button(‘emitter off’) .onClick(() => { emitter.off(“test001”, this.emitterCallBack); }) Button(‘emitter send’) .onClick(() => { let eventData: emitter.EventData = { data: { “content”: “c”, “id”: 1, } }; emitter.emit(“test001”, eventData); })

点击emitter on后,点击emitter.send,可以监听到console.info(‘emitter on’)

点击emitter off后,点击emitter.send,则无法监听到console.info(‘emitter on’)

在HarmonyOS鸿蒙系统中,处理Next emitter移除通知的问题,首先需要确认你使用的是正确的API和方法来管理通知。鸿蒙系统的通知管理API与Android或其他系统有所不同,因此确保你遵循的是鸿蒙系统的官方文档和指南。

移除通知通常涉及调用特定的通知管理接口,这些接口允许应用取消已经发出的通知。你需要确保:

  1. 通知ID正确:在移除通知时,确保使用的通知ID与发出通知时使用的ID一致。
  2. 权限管理:确认应用具有必要的权限来管理通知,包括发送和取消通知的权限。
  3. API版本匹配:使用的API应与你的鸿蒙系统版本相匹配,避免不兼容导致的问题。
  4. 调用时机:确保在合适的时机调用移除通知的API,例如在用户触发某个动作或应用状态改变时。

如果上述步骤都正确无误,但问题依旧存在,可能涉及更复杂的系统级问题或特定于设备的兼容性问题。此时,直接联系鸿蒙系统的官方技术支持是解决问题的有效方式。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部