【发布时间】:2017-03-10 07:37:10
【问题描述】:
我创建了一个带有 2 个片段(FragmentOne.java 和 FragmentTwo.java)的 Activity (DemoActivity.java)。
我在像这样EventBus.getDefault().register(this);的Activity中注册了EventBus
并在Activity中创建了一个Suscriber方法:
@Subscriber
public void abc(String str) {
Log.i(TAG,"MainActivity Called !!");
}
然后我在按钮单击EventBus.getDefault().post(""); 时从 FragmentTwo.java 发布一个事件
这种情况对我来说很好。但是当我在 FragmentOne.java 中创建相同的订阅者方法时,它不起作用。为什么?
【问题讨论】:
-
您需要像在活动中注册一样在 EventBus 中注册 FragmentOne
-
您是否将您的片段注册为事件接收者?
-
@avi 我已经尝试过 - EventBus.getDefault().register(getActivity());
-
为什么要获取 Activity 你需要传递你定义订阅者方法的片段的引用。在此处附上您的代码以便更好地参考。
-
是的,弗拉德·马特维恩科。我为此使用了@Subscriber 注释.. 对吗?还是会有另一种解决方法?
标签: android greenrobot-eventbus-3.0