同一类的多个实例从事件总线获取同一事件

时间:2019-07-23 16:37:46

标签: java event-bus greenrobot-eventbus-3.0

我正在使用greenroot事件总线,使用 @Subscribe 批注以异步方式在应用程序的2个组件之间传递事件有效负载。 问题是如果在事件总线上注册了具有 @Subscribe 批注的类的多个实例, 它们都接收相同的事件有效负载,并且计算多次进行(我创建了许多实例。)

事件总线是否可以将事件有效负载仅提供给我的类的单个实例,即

如果我的订阅方法如下:

public class A {

 A() {
   eventBus.register(this);
 }

 @Subscribe
public void consumeEvent(String s) {
   // do something
}

}

如果我创建5个类A的实例,并将5个字符串传递给事件总线,则所有订阅的实例应各获得1个实例。

有没有办法避免由于多个对象而造成的冗余计算?。

0 个答案:

没有答案