【问题标题】:SwipeRefreshLayout & RxAndroid subscribeOn(AndroidSchedulers.mainThread()) not workingSwipeRefreshLayout & RxAndroid subscribeOn(AndroidSchedulers.mainThread()) 不工作
【发布时间】:2015-08-22 14:54:27
【问题描述】:

我使用 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) { {
                       ...
                    }
                }
        }
}

日志:假

我的代码错了吗?

【问题讨论】:

    标签: android retrofit swiperefreshlayout rx-android


    【解决方案1】:

    使用subscribeOn 指定您应该在哪个线程上执行 Observable 操作。如果您希望在特定线程上通知您的观察者,您应该使用.observeOn(AndroidSchedulers.mainThread())

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多