2015-07-01 21 views
2

我已经得到了EventBus事件注册2级运行的类 - 例如一个和实例。他们都实施了onEvent(SampleEvent event)方法从C处接收。到现在为止还挺好。如何取消订阅自身发送的EventBus事件?

但是有一段时间,我需要将SampleEvent从B到A。是否有可能告诉B它不应该处理SampleEvent本身发送,或者我需要做的解决方法,如在SampleEvent设置一个标志?

+0

为什么从B发送事件到A时不使用单独事件? –

+0

@PeterP这也是一种方法。事情是,它将是完全相同的事件与相同的变量,只有不同的名称。如果我的想法不可能实现,我会完全按照这种方式。 ;) –

回答

1

你可以尝试为〔实施例SampleEventToA延长SampleEvent比你通过使用反射B内部检查:

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

上找到奥托EventBus这个问题:从超级事件的衍生事件也将调用父类的事件的用户。这将是一个可能的OO解决方案!

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

+0

谢谢,好主意,我没有想到。但不完全是我正在寻找的答案。 –