我正在我的应用程序中开发一些功能,我会收到推送通知,如果我的应用程序的某些屏幕正在运行,请在其中制作一些内容,例如更新一些列表,放置徽章等。
推送通知的使用是强制性的,我知道websockets或其他类似解决方案更适合完成此功能,但由于后端限制我们无法使用它。
要通知屏幕,我们认为使用的是Otto
或Eventbus
等事件库。重点是我们只有在没有屏幕接收时才显示通知"消息&#34 ;。为了解决这个问题,我们首先要发回一个" ACK"通知接收方通知它不得显示通知。
为了不做这个,(这是我的问题)这个库中是否有一些表格可以知道某些Object是否订阅了一个具体的事件?
答案 0 :(得分:2)
虽然您无法直接获得订阅者,但这是可能的。
如果您订阅了DeadEvent
,那么每次有没有订阅者的活动时您都会收到它:
@Subscribe
public void deadEvent(DeadEvent deadEvent) {
if (deadEvent.event instanceof MyConcreteEvent) {
// handle the concrete event
}
}
此处使用的事件是NoSubscriberEvent
:
public void onEvent(NoSubscriberEvent event) {
if (event.originalEvent instanceof MyConcreteEvent) {
// handle the concrete event
}
}