【发布时间】:2016-06-07 08:50:36
【问题描述】:
我正在向适配器中的演示者请求图像:
@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 被重复使用时,我应该取消订阅。这很容易。
但是当视图被销毁时如何停止所有订阅?我还应该取消演示者引用以避免内存泄漏
【问题讨论】:
-
请解释为什么投反对票
-
在这里查看我的答案stackoverflow.com/a/68351804/6039240
标签: android android-recyclerview android-lifecycle