我有一個顯示項目列表的屏幕。Android,java rx,異步
- 首先,我想顯示來自本地數據庫的元素。
- 用戶查看本地元素後,檢查互聯網並更新它們(如果設備具有互聯網)。
我有下面的代碼片段
Observable<Data> fetchFromdisk = ...;
Observable<Data> fetchFromNetwork = ...;
Observable<Data> fetchData= Observable.concat (fetchFromdisk ,fetchFromNetwork);
然後我做了以下
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);
但正在發生的事情是,fetchFromdisk第一次運行時,則執行FetchFromNetwork。一旦發光元素結束,開始執行ProcessData。
這與我想達到的完全相反。 我想優先考慮用戶快速查看數據,然後上網。 我做錯了什麼?
麪點,你應該使用'Schedulers.io()' – Sourabh
@Sourabh我已經嘗試過,但無論哪種 – user60108
不,麪點,我不是說了一個解決問題的方法沒有奏效,但你仍然應該使用io – Sourabh