相关疑难解决方法(0)

RecyclerView适配器的生命周期是什么?

我正在从适配器中的演示者请求图像:

  @Override
  public void onBindViewHolder(SiteAdapter.ViewHolder holder, int position)
  {
    Site site = sites.get(position);
    holder.siteName.setText(site.getName());
    requestHolderLogo(holder, site.getLinks().getLogoUrl());
  }

  private void requestHolderLogo(final ViewHolder holder, final String logoUrl)
  {
    compositeSubscription.add(
      presenter.bitmap(logoUrl)
        .subscribe(
          bitmap -> {
            holder.siteLogo.setImageBitmap(bitmap);
            holder.siteLogo.setVisibility(View.VISIBLE);
          },
          error -> {
            holder.siteName.setVisibility(View.VISIBLE);
          })
    );
  }
Run Code Online (Sandbox Code Playgroud)

我应该在ViewHolder重新使用时取消订阅.这很容易.

但是当视图被销毁时如何停止所有订阅?我也应该使演示者引用无效以避免内存泄漏

android android-lifecycle android-recyclerview

48
推荐指数
2
解决办法
3万
查看次数