Android Fragment 不进行分页请求

在Fragment下,使用SmartRefreshLayout监听RecyclerList的上拉获取更多时
发现retrofit+rxjava 没有进行 http 请求

我在具体方法内都已经打 log 看执行了。

已经执行到对应的 Subscriber onStart钩子,但没有进入到 onNext 钩子。
同时对 App 请求抓包时发现在上拉时根本都没有产生 Http 请求。

而且最奇怪的是,同样的代码,在Activity里是可以的,改为Fragment就会有这样的问题。

实在是搞不懂哪儿有问题,求教了。

注:这个请求是根据 page 来的,打开 App 时会以 0 作为 page 参数请求是正常的(会产生请求并 setadapter,只有在上拉刷新时才会出现以上问题。

相关代码:

  public void getPhotoList(Subscriber<PhotoList> subscriber, int page, String keyword) {
    Log.d(TAG, "getPhotoList: ");
    mPhotoListService.getListPage(page, keyword)
        .subscribeOn(Schedulers.io())
        .unsubscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread(), true)
        .subscribe(subscriber);
  }
// 在上拉获取更多时会执行这段代码
BaseHttpMethods.getInstance().getPhotoList(mPhotoSubscriber, page, keyword);
// 
Subscriber mPhotoSubscriber = new photoSubscriber();
private class photoSubscriber extends Subscriber<PhotoList> {

    @Override public void onStart() {
      mDialog = ProgressDialog.show(mContext, "提示", "正在获取数据...", false, false);
      mDialog.cancel();
    }

    @Override public void onNext(PhotoList data) {
      if (mNextPage == Navigator.FIRST_PAGE) {
        Log.d(TAG, "onNext: initrecycler");
        initRecycler(data);
      } else {
        Log.d(TAG, "onNext: addrecycler");
        addRecycler(data);
      }
      mNextPage++;
      mLastPage = data.getLast_page();
    }

    @Override public void onError(Throwable e) {
      ToastUtils.show(mContext, "获取时出现了错误...");
      mDialog.cancel();
    }

    @Override public void onCompleted() {
      mDialog.cancel();
    }
  }
阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏