OnEvent使用EventBus转换不正确的事件Object

时间:2016-11-29 06:34:04

标签: android android-fragments greenrobot-eventbus

我已在EventBusActivity (BaseActivity)注册了Fragment (BaseFragment)。所以,我抓住了以下事件: 在BaseActivityBaseFragment我有相同的代码:

public void onEvent(Object object) {
    // do nothing
}

我的孩子fragment (A) extended来自BaseFragment,我有一个事件XYZEvent,我希望调用此方法:

public void onEvent(XYZEvent event) {
    // my logic, not called :(
}

但事实并非如此。我已调试,BaseActivityBaseFragment中的onEvent都被调用。 所以,我改变了我的fragment (A),如下所示:

public void onEvent(Object event) {
   if(event instanceof XYZEvent) {
       // my logic
       // after changed this block code is called (~_~), why???
   }
}

它被称为。 那么,我想知道onEvent(XYZEvent event)未被解雇时我错过了什么?但onEvent(Object event)做到了。似乎返回的事件投射错误,我的XYZEvent已投放到Object

P / S:我使用了这个库compile 'de.greenrobot:eventbus:2.4.0'而XYZEvent包含一个Serializable对象

1 个答案:

答案 0 :(得分:0)

好的,这是我的错误。我有一个onEvent方法,它已经窃取了我的XYZEvent。