【发布时间】:2020-05-03 22:02:32
【问题描述】:
我是 Glide 的新手。我想使用 Glide.clear() 函数来清除内存并避免 OOM。但我不知道在 RecyclerView Adapter 中必须在哪里使用 Glide.clear() ?例如,当用户关闭应用程序时,我想调用 Glide.clear()。这也是我在 onBindViewHolder 中的 Glide 加载代码:
Glide.with(context).load(ApiClient.Base_URL + imagesList.get(0).getImage())
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.dontAnimate()
.dontTransform()
.thumbnail(0.1f)
.override(holder.deviceWitdh, holder.deviceHeight)
.error(R.drawable.error)
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
holder.progresBar.setVisibility(View.GONE);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
holder.progressBar.setVisibility(View.GONE);
return false;
}
})
.into(holder.imageView);
【问题讨论】:
-
与其尝试手动做这种事情,我推荐configuring Glide's memory cache。
-
@CommonsWare 但链接中没有关于 Glide.clear() 的内容。
-
那是因为我建议你不要使用
Glide.clear()。我建议你配置 Glide 的内存缓存,这样 Glide 可以更好的清理自己的内存。 -
@CommonsWare 看起来很复杂,而且我是 Glide 的新手。那么你能建议我其他方法吗?
标签: android android-recyclerview android-glide