私はアイテムのリストを表示する画面を持っています。Android、java rx、非同期
- まず、ローカルデータベースから要素を表示します。
- ユーザーは、インターネットをチェックし、地元の要素を表示し、 された後(デバイスがインターネットを持っている場合)、それらを更新してください。
私はその後、私は、次の
mSubscriptions.clear();
Subscription subscription = fetchData
.subscribeOn(mSchedulerProvider.computation())
.observeOn(mSchedulerProvider.ui())
.subscribe(
new Subscriber<List<Data>>() {
@Override
public void onCompleted() {
view.setLoadingIndicator(false);
}
@Override
public void onError(Throwable e) {
processError(e);
}
@Override
public void onNext(List<Data> data) {
processData(data);
}
}
);
mSubscriptions.add(subscription);
をやって、次のコードの断片に
Observable<Data> fetchFromdisk = ...;
Observable<Data> fetchFromNetwork = ...;
Observable<Data> fetchData= Observable.concat (fetchFromdisk ,fetchFromNetwork);
を持っていますが、何が起こっていることfetchFromdiskが、その後FetchFromNetworkが実行され、最初の実行であるということです。放出要素が終了すると、ProcessDataの実行が開始されます。
私が達成したいものの全く逆です。 データをすばやく表示してからインターネットにアクセスするようにユーザーの優先順位を設定したいと考えています。 私は何が間違っていますか?
サイドポイント、あなたは、私はすでに試した 'Schedulers.io()' – Sourabh
@Sourabhを使用する必要がありますが、それはどちらか – user60108
いいえ、サイドポイントを動作しませんでした、私は、あなたの問題への解決策を言っていないですしかし、あなたはIOを使用する必要がありますとにかく – Sourabh