Android收听Library Module中的事件

时间:2017-04-06 12:09:46

标签: android greenrobot-eventbus

我正在使用Eventbus在Android上创建一个库。

我在我的图书馆发帖。

                    EventBus.getDefault().post(new ConnectToDataEvent(Constants.AUTH,true));

注册app模块以监听活动。

 @Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

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

订阅方法

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(ConnectToDataEvent event) {

    loginonClick();
  };

我正在接收

No subscribers registered for event

这是在库中使用的正确方法,或者根本不可能。

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您是否在发布活动前打开了活动?

答案 1 :(得分:0)

  

没有注册活动的订阅者

这通常是因为您的活动不再可见,因此onStop()已被调用,并且EventBus已取消订阅。

您需要删除onStop()部分,然后尝试将注销部分移至onDestroy()

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

    super.onDestroy();
}