我已经为EventBus事件注册了2个正在运行的类-实例A和实例B。它们都实现了onEvent(SampleEvent event)
方法,用于从场所C接收EventBus.post(new SampleEvent(int foo, String bar));
。到目前为止,一切都很好。
但是有时我需要将SampleEvent
从B发布到A。是否可以告诉B它不应该处理自己发送的SampleEvent
,还是需要做一些变通方法,例如在?
最佳答案
您可以尝试使用示例SampleEventToA扩展SampleEvent,而不是使用反射在B中进行检查:
if (! event instanceof SampleEventA){
//do things here
}
在otto EventBus上发现了此问题:超级事件的派生事件也将调用超级事件的订阅者。这将是一个可能的OO解决方案!
https://github.com/square/otto/issues/83