如果从具有相同URL的服务器更改,则Universal Image loader不会刷新图像

时间:2017-10-07 10:35:05

标签: android universal-image-loader

  • 我使用Universal Image Loader从服务器加载图像,并将其缓存到内存中以便快速加载。
  • 但是从服务器端使用相同的URL来更新映像。
  • 例如,www.example.com / xidz.png是图片的网址,当他们需要更新图片时,他们会返回相同的网址和不同的图片。
  • 在这种情况下,Universal Image Loader返回先前缓存在内存中的图像(我认为它使用相关的URL缓存了图像)。
  • 因此,如果网址返回了不同的图片,我需要更改图片。

这是我用于加载图片的代码

DisplayImageOption.java

ImageLoader.getInstance().displayImage(url, imageView, DisplayImageOption.getDisplayImage());

图像加载代码

{{1}}

由于

1 个答案:

答案 0 :(得分:0)

ImageLoaderConfiguration添加diskCache选项中。

File cacheDir = StorageUtils.getCacheDirectory(context);
long cacheAge = 10L;

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
        .diskCache(new LimitedAgeDiscCache(cacheDir, cacheAge)) // this will make the cache to remain for 10 seconds only
        .build();

然后将其设置为ImageLoader,并使用DisplayImageOption

显示图片
ImageLoader.getInstance().init(config);
ImageLoader.getInstance().displayImage(url, imageView, DisplayImageOption.getDisplayImage());

它的作用是什么? 取自Android-Universal-Image-Loader

  

LimitedAgeDiscCache (大小无限的缓存,文件有限,生命周期。如果缓存文件的年龄超出定义的限制,则会从缓存中删除。)

这段代码来自Android-Universal-Image-Loader' LimitedAgeDiskCache.java类。

/**
     * @param cacheDir Directory for file caching
     * @param maxAge   Max file age (in seconds). If file age will exceed this value then it'll be removed on next
     *                 treatment (and therefore be reloaded).
     */
    public LimitedAgeDiskCache(File cacheDir, long maxAge) {
        this(cacheDir, null, DefaultConfigurationFactory.createFileNameGenerator(), maxAge);
}

您可能也希望this接近。