1

Ich habe meine App kürzlich geändert, um weniger abhängig von anderen Teilen der Anwendung zu sein, indem ich zu eventbus wechselte. Jetzt sehe ich ein seltsames Problem, ich weiß nicht, ob es ein Bug oder eine beabsichtigte Eigenschaft des Ereignisbusses des grünen Roboters ist.Abonnierte Veranstaltungen und Polymorphie Feuer zweimal

Angenommen, ich habe ein Ereignis A und Ereignis B, Well Ereignis B erweitert A, da A ein generisches Ereignis vom Typ A ist. Meine Hilfsklassen haben sowohl Ereignis A als auch Ereignis B abonniert , dann A. Gibt es eine Möglichkeit, dies zu verhindern, während mein Polymorphismus anders als zu prüfen, ob es ein instanceof im generischen subscribe Listener ist? Ich verwende das A-Ereignis als Broadcast von Typen, wenn es in mehr als einer Klasse behandelt werden muss.

Dank

Antwort

0

Ich weiß, dass dies eine alte Post, aber man kann durch die Einrichtung Ihres Eventbus wie dies tun:

EventBus EVENT_BUS = new EventBus().builder().eventInheritance(false).installDefaultEventBus(); 

Der Schlüssel ist hier die Methode eventInheritance(Boolean) ist. Ich hatte das gleiche Problem mit mir, und wenn ich die Bus-Instanz auf diese Weise baute, wird nur das Ereignis, das Sie abonniert haben, ausgelöst. Wenn Sie also das Ereignis B auslösen, wird nur der Teilnehmer des Ereignisses B ausgelöst, nicht das Ereignis A.