Я запрашиваю изображения из презентатора в адаптере:
@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);
})
);
}
Я должен отказаться от подписки при повторном использовании ViewHolder
. Это легко.
Но как остановить всю подписку при уничтожении вида? Я также должен, вероятно, свести на нет ссылки ведущего, чтобы избежать утечки памяти