SwipeRefreshLayout & RxAndroid subscribeOn(AndroidSchedulers.mainThread()) 不工作
SwipeRefreshLayout & RxAndroid subscribeOn(AndroidSchedulers.mainThread()) not working
我使用 SwipeRefreshLayout 处理拉动刷新并使用 Retrofit returns 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())
.
我使用 SwipeRefreshLayout 处理拉动刷新并使用 Retrofit returns 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())
.