问题标签 [greenrobot-eventbus-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
865 浏览

android - EventBus 注释处理器在 AndroidStudio 3.1 中不接受 ThreadMode.MAIN_ORDERED

我目前正在使用 AndroidStudio 3.1 Canary 3 和 D8。我试过没有 D8,也试过 3.1.0。一致的问题是 MAIN_ORDERED 在无法找到 ENUM 的注释处理器中引发错误。但是,当我检查 EventBus 代码时,ENUM 就在那里。Android Studio 还会自动完成 MAIN_ORDERED 枚举。

在我的活动中,我有:

@Subscribe(threadMode = ThreadMode.MAIN_ORDERED) public void fragmentDone(FragmentResult msg) {

由于注释处理器的错误,这无法构建:

07:28:26.857 [ERROR] [system.err] error: Unexpected error in EventBusAnnotationProcessor: java.lang.EnumConstantNotPresentException: org.greenrobot.eventbus.ThreadMode.MAIN_ORDERED

如果我恢复使用ThreadMode.MAIN.

我正在使用org.greenrobot:eventbus:3.1.1andorg.greenrobot:eventbus-annotation-processor:3.1.0这似乎是正确的版本。

这会导致生成损坏的 EventBusIndex.java 文件:-

再一次,查看import org.greenrobot.eventbus.ThreadMode;文件,枚举看起来包含MAIN_ORDERED声明。

我没主意了...

0 投票
1 回答
193 浏览

event-bus - 我在父类中注册对象但在子类中订阅事件,但它仍然有效,为什么?

所以这正是我希望它工作的方式,但我只是对它为什么工作感到困惑。我在父类中注册对象,但在子类中订阅事件。

通过在父类中注册对象,EventBus不会看到类型父类(仅subscribed父类中的事件)吗?

如果是这样,那么它如何能够看到子类中订阅的事件呢?

如果有人能澄清这一点,那就太棒了,谢谢!

0 投票
2 回答
1312 浏览

java - 活动和服务之间的 EventBus 通信

我正在开发一个带有 EventBus 库的 Android 应用程序。我有一项活动和一项服务。我想从活动中触发一个事件并在服务中接收它。

活动是:

服务是:

清单是:

当我按下活动按钮启动后台任务时,EventBus 在 logcat 上显示以下消息:

怎么了?

0 投票
1 回答
217 浏览

android - EventBus 在同一个片段中发布和订阅

我有一个片段可以使数据与远程服务器同步,我需要发送各种不同的对象实例,它必须在后台运行,所以我为每个对象实现了一个 AsyncTask。在这个 Asynctask 中,我准备了要通过 WebService 发送到远程服务器的数据。当它收到响应时,它会发布一个事件,该事件被同一片段中的订阅者捕获。我的麻烦是第一次正确发布事件,但在接下来的帖子中,事件成倍增加。

那是我的代码:

0 投票
1 回答
3185 浏览

java - EventBus - 类无法识别 @Subscribe 注释

我不明白,我已经在其他项目中使用该库,并且运行良好。!我仔细检查了代码,它是一样的,但是这个是行不通的。!?


错误


接收活动

事件类

发布活动

有些人建议在 ProGrad 中添加行,这样它就不会删除订阅者等等。所以我添加了这些,但仍然无法正常工作

0 投票
1 回答
653 浏览

android - GreenRobot eventbus gradle 升级失败,de.greenrobot:eventbus:3.1.1

当我尝试使用依赖升级 eventbus SDK 时"de.greenrobot:eventbus:3.1.1",它说无法解析"de.greenrobot:eventbus:3.1.1"

0 投票
1 回答
2108 浏览

android - Eventbus onMessageEvent 没有被调用

我已经在我的项目中实现了 EventBus,但我没有得到我的所有事件

在这里,我在 onClick(); 中创建了 2 个事件;这是我的另一个活动,我有另一个@Subscribe

我不知道为什么我的第二次吐司没有被叫到,我已经正确地完成了每件事。

我怀疑的AnotherActivity是尚未创建,所以我的事件没有被调用,那么 EventBus 的用途是什么?

0 投票
1 回答
912 浏览

java - 如何在 Android 上的两个 Activity 中使用 EventBus

在我的应用程序中,我想使用EventBus来管理事件。
在我的应用程序中,我在活动 A上打开活动 B!我想当活动 B完成时,在活动 A中调用一个事件。

我写下面的代码

活动乙:

活动一:

更新代码:

但不能调用任何登录getEventShowDialog。不向我显示此方法的任何日志!

我该如何解决?

0 投票
1 回答
814 浏览

android - Android 上的单元测试 EventBus

我已经看到了这个 SO question,但它并没有为我正在尝试做的事情提供解决方案。

我正在使用 EventBus(来自 greenrobot)在我的应用程序中发送消息。我希望能够对我的应用程序进行单元测试,以确认消息已发布到总线。只是。

这是我想用一个发布消息的方法测试的类:

这是我尝试过但不起作用的测试:

我已经编写了这个测试,即使知道它可能会失败,因为 EventBus 使用单例来发布消息,而我不知道如何测试正在执行的单例方法。

而且,这只是一个大项目的一部分。相关的部分。我想根据不同的交互来测试消息的正确发布

0 投票
1 回答
1088 浏览

java - 如何在android中的活动之间使用EventBus

在我的应用程序中,我有两个 activities.
活动 A活动B。
进入活动 B我有dialog,当用户单击其中一个按钮时dialog,我想在活动 A
中调用方法, 我在下面编写代码,但是当单击dialog按钮时不调用活动 A中的方法。

活动 B 对话框代码:

活动 A 代码:

单击对话框时,不显示我Log.e("paymentLog", "Clicked");进入日志。

我该如何解决?