1

RxJava の基本的な使用方法は理解できたと思いますが、Observer パターンの使用に問題があります。

基本的に、私がやりたいことは、List監視できるオブジェクトの静的を持ち、リストへの追加を使用してこのデータを Web サービスに送信することです。

これまでの私のアプローチは、 astatic List<Object>と a を作成するだけでしたstatic Observable<Object>。このオブザーバブルは、

observable = Observable.from(listOfObjects);

次に、アップロード ロジックを.subscribe()呼び出し内に配置します。Listこれは、事前にすべての設定を行っていれば機能しますが、実行時にあちこちに入力したいと考えています。これは.subscribe()、もう一度電話をかけても機能しますが、それを行うと何か間違ったことをしているように感じます. 既存のサブスクリプションをオブザーバブルから発行された新しいアイテムに作用させることができると思っていましたが、リストに追加しても何も起こっていないようです。

より良い/正しいアプローチに関する洞察をいただければ幸いです。

4

1 に答える 1

2

Observable.from(listOfObjects)リストの各オブジェクトを発行する新しいオブザーバブルを作成します。あなたも書くことができObservable.just(1, 2, 3, 4)ます。それは同じことです。

そのため、オブジェクトをリストに追加しても、 にObservableは通知されません。

Observable新しく追加されたアイテムから通知するカスタム リストを作成できます。彼のトピックに非常に近い解決策が表示されます: How can I create an Observer over a dynamic list in RxJava?

しかし、リストに乗って、Subject代わりに ?を使用することもできます。リストにオブジェクトを追加する代わりに、theSubject.onNextメソッドを呼び出すだけです。

アイテムが追加されたときにのみ通知されることに注意してください。アイテムが削除されても通知されません。必要に応じて、Observable追加されたアイテムを発行するのではなく、関連付けられた state :new Added<Object>(item)などのアイテムを発行する必要がありますnew Removed<Object>(item)

于 2015-03-04T09:36:19.277 に答える