1

私は最近、eventbusに切り替えることで、アプリケーションの他の部分への依存度が低くなるようにアプリケーションを変更しました。今私は奇妙な問題を見ている、私はそのバグや緑のロボットのイベントバスの意図された機能がわからない。サブスクリプションイベントとポリモフィズムが2回発生する

イベントAとイベントBがあるとします。イベントBはAがA型の汎用イベントであるからです。私のヘルパークラスは、イベントAとBの両方を購読しています。 A.一般的なサブスクライブ・リスナーのinstanceofかどうかを確認する以外に、多形性を維持しながら、これが発生しないようにする方法はありますか?複数のクラスで処理する必要がある場合は、A型イベントを型のブロードキャストとして使用します。

おかげ

答えて

0

私は、これは古い記事ですけど、あなたはこのようなあなたのイベントバスを設定することによってこれを行うことができます。

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

ここで重要なのはeventInheritance(Boolean)方法です。私はこの同じ問題が私に起こった、と私はバスのインスタンスをこのように構築すると、あなたが購読されているイベントだけが発生します。したがって、イベントBを発生させると、イベントAではなく、イベントBのサブスクライバのみが起動します。

関連する問題