java - Subscribe to different event bus in same class -


i using greenrobot event bus 3.0 event bus , have 2 publishers:

 private static final eventbus event_bus = new eventbus();  //publish event event bus public static void sendevent(loggingevent event){     logpublisher.event_bus.post(event); }  //publish event event bus public static void sendevent(otherloggingevent event){     logpublisher.event_bus.post(event); } 

i have 2 subscribers:

 @subscribe(threadmode = threadmode.async)     public void onevent(loggingevent event){         logevent( event);     }   @subscribe(threadmode = threadmode.async)     public void onevent(otherloggingevent event){         logevent( event);     } 

the issue when make call like:

mypublisher.sendevent(new otherloggingevent(vara, varb, varc));

both subscribers called , can't figure out why. think might have fact otherloggingevent subclass of loggingevent, i'm not sure. question becomes how maintain 1-1 relationship publisher , subscriber. want call:

mypublisher.sendevent(new otherloggingevent(vara, varb, varc)); 

and have subscriber public void onevent(otherloggingevent event) called , when call:

mypublisher.sendevent(new loggingevent(vard, vare, varf)); 

the subscriber:

 public void onevent(loggingevent event) 

will called? work is, have make sure classes unique, , not subclass of each other? have create new eventbus object?

both subscribers calling because of event class inheritance. can switch off eventinheritance feature in eventbus itself. using method:

eventbus bus = eventbus.builder().eventinheritance(false).installdefaulteventbus(); 

Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -