我为 EventBus 事件注册了2个正在运行的课程 - 实例 A 和实例 B 。他们都实施了onEvent(SampleEvent event)
方法,用于从 C 的地方接收EventBus.post(new SampleEvent(int foo, String bar));
。到目前为止一切都很好。
但有一段时间我需要将SampleEvent
从B发布到A 。是否可以告诉 B 它不应该处理自己发送的SampleEvent
,或者我需要像SampleEvent
中设置标记一样解决方法?
答案 0 :(得分:1)
您可以尝试为SampleEventToA扩展SampleEvent,而不是使用反射在B中检查:
if (! event instanceof SampleEventA){
//do things here
}
在otto EventBus上发现此问题:来自super事件的派生事件也将调用超级事件的订阅者。这可能是OO解决方案!