我使用 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) { {
...
}
}
}
}
记录:false
我的代码错了吗?
答案 0 :(得分:2)
使用subscribeOn
指定应该对哪个线程进行Observable操作。如果您希望在特定线程上通知您的观察者,则应使用.observeOn(AndroidSchedulers.mainThread())
。