我正在使用 EventBus 在 Android 上创建一个库。
我正在我的图书馆中发布一个 Activity 。
EventBus.getDefault().post(new ConnectToDataEvent(Constants.AUTH,true));
应用程序模块已注册以监听事件。
@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
这是在库中使用的正确方法还是根本不可能?
感谢任何帮助。
最佳答案
No subscribers registered for event
这通常是因为您的 Activity 不再可见,因此 onStop()
已被调用并且 EventBus 已被取消订阅。
您需要删除 onStop()
部分,并尝试将取消注册部分移至 onDestroy()
:
@Override
public void onDestroy() {
EventBus.getDefault().unregister(this);
super.onDestroy();
}
关于java - Android 监听来自库模块的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43254845/