問題タブ [event-bus]

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.

0 投票する
4 に答える
10651 参照

android - EventBus と Callbacks、いつどちらを使用する?

バックグラウンド タスクを発生させる多くのアクティビティがあります。バックグラウンド タスクがアクティビティでイベントを発生させることができるように、アクティビティはリスナー コールバックを実装したものとして自身を渡します。アクティビティは、UI に何かを表示して、バックグラウンド アクティビティが成功したか失敗したかを示すことができます。

別の方法として、EventBusを使用して Activity をリスナー/サブスクライバーとして登録することもできます。バックグラウンド タスクが EventBus でイベントを発生させ、それをリッスンしているアクティビティがそれを処理できます。

他のものよりも優れている点は何ですか? いつどちらを使用しますか?(コードのクリーン度? パフォーマンス? 警告?)


フォローアップ - EventBus を使用することになりました。コードは間違いなくずっときれいになり、コールバックがあちこちにぶら下がっていません。IDE (IntelliJ) はメソッドが使用されていないと考えているonEventため、アノテーションを作成しました

onEventそしてそれを私の方法の上に置きました。次に、Alt+クリックして、IntelliJに未使用として扱わないように依頼しました。

0 投票する
0 に答える
66 参照

java - akka を使用してコマンドをサーバーに発行する Java

私はakkaが初めてなので、イベントバスにイベントを追加して呼び出されたものをキャッチする方法を知りたいです。コードサンプルあり。

種類:

ClientActor.java

問題は、「witingCommand」が呼び出されていないことです。誰かが私が間違っていることを教えてくれるでしょうか?

0 投票する
1 に答える
114 参照

android - Otto のメッセージ プロデューサで作成されたイベント オブジェクトはどこにありますか?

Otto のコード例に従って、イベントが生成されると、プロデューサー関数からイベント クラスが返されます。

ただし、AnswerAvailableEventどこにも定義されていないようです。ドキュメントで言及されている他の唯一の時間は、イベントが投稿されたときです

そして、イベントが受信されたとき:

このクラスは何らかの形で自動的に定義されていますか? クラスはどのようにしてthis.lastAnswerパラメーターをどうするかを知っていますか?

ありがとう。

0 投票する
1 に答える
630 参照

android - Android - UI要素の通信にイベントバス(Ottoなど)を使用するのは正しいですか?

イベント バスを使用して UI ビュー間で通信できますか (それは正しいですか)? たとえば、リスナーを実装する代わりに、フラグメント間の通信に使用しますか?

バスの同じインスタンスを複数の操作に使用できますか?

ありがとうございました

0 投票する
1 に答える
144 参照

java - 静的初期化子の正当な使用?

数年前、静的初期化子を使用してクラスレベルのセットアップ操作を呼び出していたことを覚えています。私はそれが非常に奇妙な行動をとっていたことを覚えています。上下の順番を間違えていたのか、初心者だったのか。しかし、私はそれらを再検討する必要性に直面しており、同様に簡潔なより良い方法がないことを確認したいと考えています.

ファッショナブルではないことはわかっていますが、データベースからインポートされたインスタンスの静的リストを保持するデータ駆動型クラスがよくあります。

このようなテーブル駆動型のクラスが何十もある場合、このパターンは非常に簡潔です (そうです、クラスとデータ/インスタンスの 1 つのソースが密接に結合されていることはわかっています)。

しかし、Google Guava の良さを発見したとき、EventBus を使用して、特定のイベントが投稿されたときに静的リストを更新したいと考えています。登録を初期化した静的メソッドを呼び出すためだけに、静的な最終ブール変数を作成します。

サブスクライブされた変数が使用されていないことに対してコンパイラが警告をスローするため、これはすぐに面倒になりました。また、混乱を招くだけです。したがって、静的イニシャライザを使用するのが適切かどうか疑問に思っています。これを 2 つ以上のクラスに分離しないと、本当に良い方法はありません。考え?