Android:图片不会在ImageView上更新,但每天都会在URL上更新(source.unsplash.com/daily)

时间:2018-02-12 04:09:46

标签: android android-glide

我使用来自https://source.unsplash.com/daily?nature的Glide将图片加载到我的应用中 它是一个免费使用的图像平台,上面的链接每天更新图像。

然而,即使图像已在网站上更新,Glide也会显示旧的缓存图像。

使用的代码:

Glide.with(this)
             .load("https://source.unsplash.com/daily?nature")
             .into(imageView);

滑翔版:4.0.0

3 个答案:

答案 0 :(得分:1)

public static void loadImageWithGlide(Context theCtx, ImageView theImageView, String theUrl) {
        // skipMemoryCache true, because it load the same image from cache when URL not change.
        Glide.with(theCtx)
                .load(theUrl)
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .skipMemoryCache(true)
                .fitCenter()
                .into(theImageView);

        // use below lines, to enable memory cache. so that image does not load again ones loaded
        //.diskCacheStrategy(DiskCacheStrategy.ALL)
        //.skipMemoryCache(false)
    }

答案 1 :(得分:0)

像这样更改您的代码。

Glide.with(this)
        .load("https://source.unsplash.com/daily?nature")
        .signature(new StringSignature(yourVersionMetadata))
        .into(imageView);

希望它能解决您的问题。有关详细信息,请参阅here

答案 2 :(得分:0)

如果你的URL在glid中是相同的并且catch是真的那么它会从你在第一天选择的catch中加载图像,而且我知道你只想从一个URL加载图像

解决方案

首先做一件事,如果您的图像在当天第一次加载调用然后捕获内存然后在加载图像后放置一个条件。

if(isTHisyourFirstDay){
    Glide.get(getApplicationContext()).clearMemory();
}
Glide.with(this)
    .load("https://source.unsplash.com/daily?nature")
    .into(imageView);