我使用SwipeRefreshLayout处理拉刷新和使用Retrofit返回Observable来获取我的数据,但是Observable. subscribeon (AndroidSchedulers.mainThread())不工作。
private SwipeRefreshLayout.OnRefreshListener refreshListener
= new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
apis.getData()
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<BookedClass>() {
@Override
public void onCompleted() {
Log.e(TAG,""+(Thread.currentThread() == Looper.getMainLooper().getThread()));
}
@Override
public void onError(Throwable e) {
...
}
@Override
public void onNext(Data data) { {
...
}
}
}
}
日志:假
我的代码是错误的吗?
使用subscribeOn
来指定你应该在哪个线程上做你的Observable动作。如果你想让你的观察者在一个特定的线程上得到通知,你应该使用.observeOn(AndroidSchedulers.mainThread())
。