問題タブ [greenrobot-eventbus-3.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 同じクラスの異なるイベント バスにサブスクライブする
をイベント バスとして使用してGreenRobot Event Bus 3.0
おり、2 つのパブリッシャーがあります。
私は2人のサブスクライバーを持っています:
問題は、次のような電話をかけるときです。
MyPublisher.sendEvent(new OtherLoggingEvent(varA, varB, varC));
両方の加入者が呼び出されましたが、その理由がわかりません。OtherLoggingEvent
が のサブクラスであるという事実と関係があるのではないかと思いますがLoggingEvent
、よくわかりません。私の質問は、パブリッシャーとサブスクライバーとの 1 対 1 の関係を維持するにはどうすればよいかということです。電話したい:
サブスクライバーpublic void onEvent(OtherLoggingEvent event)
に電話をかけてもらい、私が電話すると:
サブスクライバー:
呼ばれますか?これはそのまま機能しますが、クラスが一意であり、相互のサブクラスではないことを確認する必要がありますか? 新しいEventBus
オブジェクトを作成する必要がありますか?
android - greenrobot イベント バスの ProGuard 構成
アプリケーションでイベントバスを使用していますが、デバッグ モードでは問題なく動作していますが、リリース APK では動作しません。
ProGuard 構成に使用される次のコード:
私の Subscribe アノテーション付きメソッドもすべて public です
Logcat 出力:
イベントをディスパッチできませんでした: クラス com.dhaval.example.model.entity.response.DashboardUnreadStoryResponse をサブスクライブするクラス クラス com.dhaval.example.view.activity.MainActivity java.lang.NullPointerException: 仮想メソッド 'java.lang. com.dhaval.example.view の com.dhaval.example.view.activity.MainActivity.b(SourceFile:150) の null オブジェクト参照に対する文字列 com.dhaval.example.model.entity.Dashboard.ba()'。 java.lang.reflect.Method の activity.MainActivity.onEventBusEvent(SourceFile:560)。org.greenrobot.eventbus.ca で (ソースファイル:485) org.greenrobot.eventbus.ca で (ソースファイル:420) org.greenrobot.eventbus.ca で (ソースファイル:397) org.greenrobot.eventbus で (ソースファイル:397) を呼び出す (ネイティブ メソッド) .ca(ソースファイル:370) org.greenrobot.eventbus.cd(ソースファイル:251) com.dhaval.example.view.ar$1.a(ソースファイル:140) com.dhaval.example.view.ar$1. a(ソースファイル:130) com.dhaval.example.f.ap$2.a(ソースファイル:90) com.dhaval.example.f.ap$2.a(ソースファイル:85) com.dhaval.example.network.a$1. a_(SourceFile:101) at rx.caa_(SourceFile:134) at rx.internal.operators.n$aa(SourceFile:224) at rx.abb$b.run(SourceFile:107) at android.os.Handler. handleCallback(Handler.java:751) android.os.Handler.dispatchMessage(Handler.java:95) で android.os.Looper.loop(Looper.java:154) で android.app.ActivityThread.main(ActivityThread.java:6290) で java. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) の lang.reflect.Method.invoke(ネイティブ メソッド) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) の) 07-14 11:39:43.640 16402-16402/com.dhaval.example D/EventBus:イベント クラス org.greenrobot.eventbus.j 07-14 11:39:43.657 16402-16402/com.dhaval.example E/com.dhaval.example.view.ar$1 にサブスクライバーが登録されていません: getResponse でエラーが発生しました: 呼び出しを試みましたnull オブジェクト参照に対する仮想メソッド 'java.lang.String com.dhaval.example.model.entity.Dashboard.ba()'