同期呼び出しと非同期呼び出しを使用する場合、Retrofitをしっかりと理解しています。ただし、いくつかの複雑なタスクを作成するときに小さな問題が発生しました。
その問題について読んだところ、RxJavaで問題を解決できることに気付きました。しかし、率直に言って、これまでのところ、プロセス全体を理解するのは本当に難しいと感じました。
RxJava/RxAndroidの問題に没頭するために、いくつかの正しい例を読んでいただければ幸いです。
この例では、IDのリストを取得し、それを個々のオブザーバブルで分割し、個々のIDに対してサービスを呼び出し、n
応答ごとにgetDetails
回通知されます。
service.getIds()
.flatMap(ids -> Observable.from(ids))
.map(id -> service.getDetails(id))
.subscribe(detailed -> updateUi(detailed));
Observable.Zip
関数をいくつかの並列呼び出しで待機しますが、可変サイズの呼び出しで使用できるかどうかはわかりません。
これを見てください 例 :
Observableのレトロフィットサポートにより、複数のREST呼び出しを一緒に結合することも簡単になります。たとえば、写真を取得する1つの呼び出しとメタデータを取得する2番目の呼び出しがあるとします。結果を一緒に圧縮できます。 :
Observable.Zip(
service.getUserPhoto(id),
service.getPhotoMetadata(id),
(photo, metadata) -> createPhotoWithData(photo, metadata))
.subscribe(photoWithData -> showPhoto(photoWithData));
あなたが本当に探しているのは、RxJavaを使い始めるための情報または例なので、Dan Lewによるこの優れた一連の記事をご覧になることをお勧めします。 http:// blog .danlew.net/2014/09/15/grokking-rxjava-part-1 /
このシリーズには、機能を実装する方法を理解するのに十分な資料が含まれている必要があります。