私のアプリケーションでは、アプリケーションが起動するとすぐに大量のデータをロードする必要があります。また、一部のフラグメント/アクティビティでデータがロードされたときにイベントを受け取る必要があります。ConnectableObservableを使用してプリフェッチし、別のサブスクライバで処理されたデータを使用する方法
私はその目的のためにRxJava ConnectableObservable
を使用しています。私はreplay()
を使用しました。私は複数の加入者に同じデータが必要です。
Psudoコード:今、私はデータを事前に取得したい場合は
Observable.create(emitter -> {
try {
Data next = getDataFromDb();
emitter.onNext(next);
emitter.onCompleted();
} catch (SQLiteException e) {
emitter.onError(e);
}
}, Emitter.BackpressureMode.BUFFER)
.toList()
.compose(applySchedulers())
.replay()
、Iアプリケーションクラスでsubscribe
、その後の活動では、/フラグメントはconnect()
を使用する必要がありますか?