Android Fragment 不进行分页请求

发布于 2022-09-06 02:23:01 字数 1729 浏览 16 评论 0

在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();
    }
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文