我的后端每次将URL更改为同一张图片时,这会使Glide重新下载图片,即使图片没有更改。
所以我想知道是否有可能让Glide忽略查看变化的URL而仅检查签名,以便它可以正确地为我的应用程序缓存。

谢谢!

最佳答案

我在这里找到了答案:https://github.com/bumptech/glide/issues/607

您需要像这样重写getCacheKey()方法:

public class GlideUrlWithToken extends GlideUrl {
        private String mSourceUrl;

        public GlideUrlWithToken(String url, String token) {
            super(new StringBuilder(url)
                    .append(token) // append the token at the end of url
                    .toString());

            Preconditions.checkNotNull(url);
            Preconditions.checkNotNull(token);

            mSourceUrl = url;
            Log.v(TAG, url);
        }

        @Override
        public String getCacheKey() {
            return mSourceUrl;
        }

        @Override
        public String toString() {
            return super.getCacheKey();
        }
    }


然后,您可以像下面这样调用Glide:

Glide.with(mContext).load(new GlideUrlWithToken(image.getLink(), token))
                    .signature(new StringSignature(signature))
                    .into(imageView);


这里的签名保存了我的imageId +来自服务器的updatedAt值,因此如果更新了图像,它应该重新下载图像。

关于android - 强制Glide仅查看签名以进行缓存或重新下载,因此请忽略其他URI(Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40194337/

10-11 20:12