知道对象是否属于EventBus或Otto库中的事件

时间:2015-10-21 00:15:08

标签: android event-bus otto

我正在我的应用程序中开发一些功能,我会收到推送通知,如果我的应用程序的某些屏幕正在运行,请在其中制作一些内容,例如更新一些列表,放置徽章等。

推送通知的使用是强制性的,我知道websockets或其他类似解决方案更适合完成此功能,但由于后端限制我们无法使用它。

要通知屏幕,我们认为使用的是OttoEventbus等事件库。重点是我们只有在没有屏幕接收时才显示通知"消息&#34 ;。为了解决这个问题,我们首先要发回一个" ACK"通知接收方通知它不得显示通知。

为了不做这个,(这是我的问题)这个库中是否有一些表格可以知道某些Object是否订阅了一个具体的事件?

1 个答案:

答案 0 :(得分:2)

虽然您无法直接获得订阅者,但这是可能的。

奥托

如果您订阅了DeadEvent,那么每次有没有订阅者的活动时您都会收到它:

@Subscribe
public void deadEvent(DeadEvent deadEvent) {
    if (deadEvent.event instanceof MyConcreteEvent) {
        // handle the concrete event
    }
}

EventBus

此处使用的事件是NoSubscriberEvent

public void onEvent(NoSubscriberEvent event) {
    if (event.originalEvent instanceof MyConcreteEvent) {
        // handle the concrete event
    }
}