我正在使用 greenroot eventbus 在我的应用程序的两个组件之间以异步方式传递事件有效负载,使用@Subscribe注释来订阅事件。问题是,如果具有@Subscribe注释的类的多个实例注册到事件总线,它们都接收相同的事件有效负载并且计算是多次完成的。(正如我创建的许多实例一样。)
有没有办法让事件总线只向我的类的单个实例提供事件有效负载,即
如果我的订阅方法如下所示:
public class A {
A() {
eventBus.register(this);
}
@Subscribe
public void consumeEvent(String s) {
// do something
}
}
如果我创建 5 个 A 类实例,并将 5 个字符串传递给事件总线,则所有订阅的实例都应该得到 1 个实例。
由于多个对象,有没有办法可以避免这种冗余计算?