Android EventBus - hasSubscriberForEvent() 总是 return 错误

Android EventBus - hasSubscriberForEvent() always return false

据我了解,如果我正在侦听此 eventClass 上的任何事件,则来自 EventBus 的方法 hasSubscriberForEvent(Class<?> eventClass) 应该 return 为真。但它总是 return 错误,我不确定为什么。

在我的片段中,我注册和注销了 EventBus,并声明了监听 Post:

的方法
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    EventBus.getDefault().register(this);
    super.onCreate(savedInstanceState);
}

@Override
public void onDestroy() {
    EventBus.getDefault().unregister(this);
    super.onDestroy();
}

public void onEvent(MyDummyObject event) {
    Log.i(TAG,"event received!");
}

在我的服务中,我需要检查这个 Fragment 是否可见,我认为一种方法是使用 EventBus.getDefault().hasSubscriberForEvent(MyFragment.class)。 我预计,如果 EventBus 看到 MyFragment 有任何注册,则 return 为真,否则 return 为假。

我是不是遗漏了什么,或者 hasSubscriberForEvent() 不是这样的?

注意: 如果我这样做 EventBus.getDefault().post(new MyDummyObject()); 事件会触发,所以我假设 EventBus 正在成功注册和注销。

看来是我理解错了方法hasSubscriberForEvent!

我不得不改变:

EventBus.getDefault().hasSubscriberForEvent(MyFragment.class);

至:

EventBus.getDefault().hasSubscriberForEvent(MyDummyObject.class)

参数是我们正在监听的对象类型,而不是注册和注销EventBus的class。

有关详细信息,请查看 this link 中对此功能的请求。