问题标签 [greenrobot-eventbus]

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 回答
1070 浏览

android - 如何在传递后取消传递粘性消息(GreenRobot-EventBus)

我正在从一个活动发布一个粘性事件,让我们调用这个活动 A。我在活动 B 中成功接收到这个事件。我去活动 C 并再次回到活动 B,因为我回来接收我之前收到的相同事件. 我了解,当我发布了一个粘性事件时,我再次收到了它,但是如何解决这个问题?我试过EventBus.getDefault().cancelEventDelivery(message);了,但它给出了一个错误de.greenrobot.event.EventBusException: This method may only be called from inside event handling methods on the posting thread 我放了一个日志来检查Thread哪个正在发布和接收事件。两者都将其显示为main线程。任何人都可以提出一些解决方案吗?

0 投票
2 回答
2020 浏览

android - Android EventBus 和基类

我试图在我所有对话的基类中实现一些常见的逻辑和对某些事件的反应。

并在 EventBus 中注册和注销,并在基类中捕获一些事件。

因此,当我尝试实例化派生类的实例时,EventBus 会抛出一个异常,即 DerivedClass 没有像 onEvent(*) 这样的方法。我不想在每个派生类中添加一些存根 onEvent 方法,这不是软件开发应有的方式。

如果没有办法使用这种关于继承的方法,那真是太可悲了。

有人遇到过吗?

0 投票
1 回答
176 浏览

android - Greenrobot Eventbus 持有变量

我有以下症状的 Eventbus 问题。我有一个开始另一个活动的活动。使用了 Eventbus 和布尔值集。此值在活动运行期间更改。第一次运行一切正常,但在第二次运行中,我在上一次运行中更改了错误的值。这是代码:

公共类 ListArchiveTabs 扩展 FragmentActivity {

}

在第一次运行时 isStartFragment 为 true,但其他运行显示为 false。

0 投票
2 回答
5057 浏览

android - Android: with Greenrobot EventBus how to communicate between 2 Activity?

I would like to communicate between 2 Activity. Both are the register() and the unregister() methods:

The ActivityB is started when I click in my list (item selection). The aim of ActivityB is to update some informations, and to send these new informations to ActivityA; so in ActivityB I call:

In my ActivityA I have this method:

Unfortunately this method onEvent is never called. Why ? Because when ActivityB starts the method onStop() in ActivityA is called, so the unregister with the bus is done...

So how to communicate in this case between these 2 Activity by using EventBus ?

Thank you guys!

0 投票
0 回答
1153 浏览

android - 触发时的事件总线延迟

我在我的应用程序中使用 Greenbot EventBus,当我按下一个触发事件的按钮时,我得到了 2 秒的延迟。

我的 EventBus 类 ResetArmyEven.java

它在这里触发:

我在片段 A 中使用它来触发两个事件,一个在片段 B 中,另一个在片段 C 中。这是我的 onEvent() 触发器

这是它调用的方法

我已经尝试改变事件正在做的事情(只是简单地发送一个祝酒词),但这并没有帮助。我也尝试过改变它的触发方式(XML 中的触发方法),但这并没有帮助。

该按钮具有连锁反应,即使触发也需要 2 秒。当我删除 EventBus 事件时,它会立即触发。所以它似乎与EventBus有关。关于如何加快速度的任何想法?我究竟做错了什么?谢谢。

0 投票
2 回答
13709 浏览

android - 我可以使用 greenrobot EventBus 在 Activity 和 Service 之间进行通信吗?

EventBus我可以使用这个库进行 Activity 到服务的通信吗?

我在我的应用程序中尝试过如下:

在我的服务中onEvent调用

0 投票
3 回答
7823 浏览

android - 用 Greenrobot Eventbus 替换广播接收器是否可以触发基于事件的功能和从服务到活动的数据传输?

我已经实现了一项服务,我在其中处理状态更改(连接、断开连接、onServiceDiscoverd、onCharacteristicChange 等)并通过 gatt 服务器从另一台设备接收数据。

我的问题是,是否可以使用Greenrobot Eventbus替换service 和 Activity 之间的广播接收器来有效处理事件?

0 投票
1 回答
1173 浏览

android - 如何使用 GreenRobot 的 EventBus 将事件从 Service 广播到 Activity?

最近我开始了解 EventBus 库。基本上,我的用例围绕服务和活动展开。

Service 用于跟踪 BLE 连接的变化。

Activity 用于向 UI 报告该连接状态。

我怎样才能使用库实现相同的目标..

0 投票
1 回答
199 浏览

android - 用GreenRobot的EventBus从Service到Activity替换广播发送和接收事件状态好不好?

这是这篇文章的后续内容 如何使用 GreenRobot 的 EventBus 将事件从 Service 广播到 Activity?

我的用例围绕服务和活动展开。

Service 用于跟踪 BLE 连接的变化。

Activity 用于向 UI 报告该连接状态。

现有场景。服务使用广播发送围绕 BLE 的每个状态的事件(通过 sendBroadcast() 方法)(连接/断开连接、数据可用等)

我的疑问:我可以像广播一样使用这个 GreenRobot 的 EventBus 库来控制(发送和接收事件)吗?如果是这样,在完全替换广播控制(发送和接收)范例的同时,有什么我应该考虑(关于线程安全)或必须知道的。

0 投票
2 回答
3258 浏览

java - GreenRobot 异常:de.greenrobot.event.EventBusException:调用订阅者失败

有时我会遇到此异常。

我只是以标准方式使用绿色机器人,在视图、片段、活动、服务和应用程序之间,使用默认实例,并且不时地使用一些粘性事件。

我没有找到与此异常相关的任何其他帖子。任何想法或暗示开始我的调查?

事件总线运行良好(约 20 个事件,10 个订阅者),一切都是用户触发的,因此现场没有大的工作量。

完整的堆栈跟踪在这里:

错误是从 MaterialDialog 实例触发的:

编辑

我发现触发异常的一件事是从一个 Fragment 发布一个 stickyEvent。旨在使即将出现的片段能够恢复该粘性事件。

当去 Eventbus 源时,它停在:

编辑

这是场景。

这是一个片段 Tx:

这是第二个片段 Rx

这是一项服务(出现奇怪行为的服务)

在 onEvent 结束时,抛出异常。好像它们是一些隐藏的行为,带有粘性扩展事件(来自超级)发布,触发超级事件的非粘性事件。