据我了解,hasSubscriberForEvent(Class<?> eventClass)
如果我正在侦听 this 上的任何 Event,EventBus 的方法应该返回 true eventClass
。但它总是返回假,我不知道为什么。
在我的片段中,我注册和注销 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
已注册的任何内容将返回 true,否则将返回 false。
我错过了什么,或者hasSubscriberForEvent()
没有这样的行为吗?
注意:如果我确实EventBus.getDefault().post(new MyDummyObject());
触发了事件,那么我假设 EventBus 正在成功注册和注销。