2

我为EventBus事件注册了 2 个正在运行的类 - 实例A和实例B。他们都实现了从地方ConEvent(SampleEvent event)接收的方法。到目前为止,一切都很好。EventBus.post(new SampleEvent(int foo, String bar));

但是有时我需要SampleEvent 从 B 发布到 A。是否可以告诉B它不应该自己处理SampleEvent发送,或者我需要做一些解决方法,比如在 中设置一个标志SampleEvent

4

1 回答 1

1

您可以尝试为示例 SampleEventToA 扩展 SampleEvent,而不是使用反射在 B 中检查:

if  (! event instanceof SampleEventA){
    //do things here
}

在 otto EventBus 上发现这个问题:来自超级事件的派生事件也会调用超级事件的订阅者。这将是一个可能的 OO 解决方案!

https://github.com/square/otto/issues/83

于 2015-07-01T11:33:45.233 回答