0
私はapiまたはデータベースからいくつかのデータを返す小さなコードサンプルを持っています。サブスクリプションのメソッドの戻り値をベースにするにはどうすればよいですか?
ここで、ネットワークステータスに基づいて別の条件を追加します。これは私が試したものです、私はこのためにReactiveNetworkライブラリを使用するが、私はそれを動作させることはできません。
@Override public Observable<List<Tactic>> getTactics(boolean forceRefresh) {
Observable<List<Tactic>> diskObservable =
disk.get().getTactics().compose(RxDataUtils.applyLog(SourceType.DISK));
Observable<List<Tactic>> apiObservable = api.get()
.getTactics()
.doOnNext(tactics -> disk.get().save(tactics))
.compose(RxDataUtils.applyLog(SourceType.API));
Subscription connectivityStatusSubscription = new ReactiveNetwork().observeConnectivity(context)
.compose(RxUtils.applyStandardSchedulers())
.subscribe(connectivityStatus -> {
isNetworkAvailable = RxDataUtils.isConnected(connectivityStatus);
Timber.v("ConnectivityChanged: " + isNetworkAvailable);
});
if (isNetworkAvailable) return forceRefresh ?
apiObservable : Observable.concat(diskObservable, apiObservable).first(
tactics -> (tactics != null && tactics.size() > 0));
return diskObservable;
}
それはあなたが他の人とステータスのストリームを組み合わせるべきであるすべての