首页 > 解决方案 > 同一 URL 中不同图像的 Glide 缓存

问题描述

我使用Glide库从服务器获取图像。我的问题是,当图像在服务器中更新为与前一张图像相同的 URL 时,Glide 会显示前一张图像。我将这些行添加到我的代码中,但问题仍然存在:

.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new ObjectKey(String.valueOf(System.currentTimeMillis())))

我的完整代码是:

CircleImageView profileImageView = view.findViewById(R.id.profile_picture_image_view);
GlideApp.with(view.getContext())
                .load(sessionManager.getAvatar().replace("https", "http"))
                .error(R.drawable.default_pic)
                .skipMemoryCache(true)
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .signature(new ObjectKey(String.valueOf(System.currentTimeMillis())))
                .placeholder(R.drawable.ic_camera)
                .centerCrop()
                .into(profileImageView);

我应该怎么办?

标签: androidandroid-imageviewandroid-glide

解决方案


如果您正在使用Glide 4.x,请尝试执行以下操作:

var requestOptions = RequestOptions()
    requestOptions.skipMemoryCache(true)
    .diskCacheStrategy(DiskCacheStrategy.NONE)
    .signature(ObjectKey(System.currentTimeMillis()))
    Glide.with(this).load(url).apply(requestOptions).into(this)

所以创建一个RequestOptions()对象并通过它应用所需的标志


推荐阅读