0
on android私はrequery dbを使用しており、DBの変更をサーバーにアップロードしようとしています。同じことを達成するために、私は次のロジックrequery db&rxjava observableResultは、後続の関数を複数回呼び出します。
Scheduler sub2 = Schedulers.newThread();
Scheduler ob2 = Schedulers.newThread();
data.select(Broadcaster.class)
.where(Broadcaster.IS_DIRTY.eq(true))
.get()
.observableResult()
.subscribeOn(sub2)
.observeOn(ob2)
.flatMap(broadcasters->broadcasters.observable())
.flatMap(broadcasters->Backend.getInstance()
.uploadBroadcaster(broadcasters)
.onExceptionResumeNext(Observable.empty()))
.flatMapSingle(broadcaster -> markUploaded(broadcaster))
.doOnError(t->Log.e(TAG,"Error uploading ",t))
.subscribe();
を実行している。しかし、すべてのためにしています変更uploadBroadcasterは、同じデータを複数回(4-10回)と呼ばれています。 私はここで間違っています。
'onNext()'ごとに 'flatMap()'が呼び出されるので、それは上流のObservable Emissionに依存しているので、おそらく単一の項目以上を出力しているので、 'uploadBroadcaster'を複数回呼び出しています。 '.observableResult()'と 'broadcasters.observable()'は何をしますか? – yosriz
質問が更新されました。私はアンドロイドでクエリーDBを使用します。 .observableResultは、reactResultとしてdbに変更を送信し、.observableはreactiveResultをobservableに変換します。 –