アプリでイベント バスを使用しています (例: greenrobot/EventBus)。しかし、Event Bus の使用にはいくつかの欠点があります。
- タスクの連鎖実行が難しい
- イベントを表現するための多くのクラス
- あまり明確でないコード (まあ、追跡することは可能ですが、それほど明確ではありません)
私はこの問題に対処するための新しい技術を研究してきました。そして、私は RxJava についてかなり読んで、それが解決策になるのではないかと考えています。
RxJava に関する私の質問 (最近読んだ内容に基づく):
- RxJava オブザーバーはいつでも登録できますか? Observable を作成するときだけではありません。EventBus ではこれが可能です。Observable が作成されたときだけでなく、いつでもサブスクライブできます。
- 同じ種類のイベント (例: ナビゲーション イベント) を発行する 2 つ以上の発行者をどのように処理しますか?
- パブリッシャーとサブスクライバーを緊密に結合するということは、毎回パブリッシャーを明示的に指定する必要があることを意味します。そのため、イベントの種類だけでなく、発案者についても心配する必要があります。EventBus を使用すると、イベントの種類だけを気にする必要があり、オリジネーターは気にする必要がありません。