【发布时间】:2017-11-01 16:54:13
【问题描述】:
我有一个非常简单的 RxJava 示例
List<Integer> arrayIntegers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Observable.fromIterable(arrayIntegers).map(i -> {
Log.d("RxJava", "map i = " + i);
return i;
}).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread()).
subscribe(new DisposableObserver<Integer>() {
@Override
public void onNext(Integer i) {
Log.d("RxJava", "next i = " + i);
}
@Override
public void onError(Throwable e) {}
@Override
public void onComplete() {
Log.d("RxJava", "Completed");
}
});
这给出了这个结果..
D/RxJava: map i = 1
D/RxJava: map i = 2
D/RxJava: map i = 3
D/RxJava: map i = 4
D/RxJava: map i = 5
D/RxJava: next i = 1
D/RxJava: next i = 2
D/RxJava: next i = 3
D/RxJava: next i = 4
D/RxJava: next i = 5
我期待的是更像这样的东西
D/RxJava: map i = 1
D/RxJava: next i = 1
D/RxJava: map i = 2
D/RxJava: next i = 2
D/RxJava: map i = 3
D/RxJava: next i = 3
D/RxJava: map i = 4
D/RxJava: next i = 4
D/RxJava: map i = 5
D/RxJava: next i = 5
我希望以后能够在 onNext 回调中使用 Toasts 并在 onCompleted 中刷新适配器,因此我无法删除 observeOn(AndroidSchedulers.mainThread()
我相信这个问题可以通过主题来解决,谁有一个简单的例子来说明如何使用主题来解决我的问题?
【问题讨论】: