java - Android 监听来自库模块的事件

标签 java android greenrobot-eventbus

我正在使用 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/

相关文章:

java - 在 Oracle 11.1.0 中使用 DdlUtils 时出现问题

java - setRequestedOrientation 在 react native 中找不到符号

Java Android 动态更改 ImageView 的位置

java - 安卓 : Notified when all Async calls are completed

android - 如何将消息从后台服务发布到 UI fragment ?

java - 使用 PlayFramework2 在 JSON 中转义 HTML

java - DB 命中是否比访问 Java 中的集合成本低?

Android Studio 无法通过 SVN 进行身份验证

java - 检查 android 设备是否支持 4K 视频?

Android GreenRobot 的 EventBus 'register' 方法使我的应用程序崩溃