Multiple instances of the same class getting same event from event bus

317 Views Asked by At

I am using greenroot eventbus to pass event payloads between the 2 components of my application in an async manner using the @Subscribe annotation to subscribe to events. The issue is if multiple instances of the class having @Subscribe annotation are registered with the event bus, All of them receive the same event payload and the computation is done multiple times.(As many instances i have created.)

Is there a way for the event bus to provide the event payload to only a single instance of my class i.e

If my subscribe method looks like:

public class A {

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

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

}

If i create 5 instances of class A, and pass 5 strings to the eventbus, all of the subscribed instances should get 1 instance each.

Is there a way i can avoid this redundant computation because of multiple objects?.

0

There are 0 best solutions below