安卓Ion缓存刷新

4
我正在使用特定的URL在线获取图像,但是这个URL本身每隔几分钟就会自动更改。 我正在使用ION库。 我的问题是,当我刷新页面时,页面本身看起来像是在刷新,但是完全相同的图片出现了。 我猜测这是一个缓存的图像?如果我重新安装应用程序,那么它又能获取正确的图像了。 以下是我如何使用ION,其中imageID2[position]只是一个指向typical jpg url的典型url。
    Ion.with(imageView)
            .placeholder(R.drawable.ic_launcher)
            .error(R.drawable.ic_launcher)
            .load(imageId2[position]);

有没有办法禁用缓存或让它重新查找图片?
3个回答

7
根据这里的文档,使用“长”方式构建ImageView请求即可添加headers、noCache等。请将您原来的请求从以下内容进行更改:
Ion.with(imageView)
        .placeholder(R.drawable.ic_launcher)
        .error(R.drawable.ic_launcher)
        .load(urlString);

转化为:

Ion.with(context)
        .load(urlString)
        .noCache()
        .withBitmap()
        .placeholder(R.drawable.ic_launcher)
        .error(R.drawable.ic_launcher)
        .intoImageView(imageView);

7
使用.noCache()来绕过缓存。

我尝试使用 .noCache(),但是出现了“无法解析方法 .noCache()”的错误。 - John McKenzie
1
您需要使用长表单,以便修改HTTP参数:Ion.with(context) .load(url) .noCache() .withBitmap() .placeholder.error.load.... - koush

3

你可以在url后添加一个唯一的字符串,例如当前时间戳,以便强制Ion将每个请求视为独立的。


1
问题是我不幸没有对URL链接本身的任何控制,否则那将是一个好主意。 - John McKenzie
2
抱歉,我的意思是在您进行调用时本地执行。只需在URL末尾附加一个虚拟参数即可。例如:"http://yoursite.com?uniqueid="+timestamp - Ivan Wooll
哦,没错,我从来没有想过那个,哈哈,伙计,完美地解决了,非常感谢!非常感激! - John McKenzie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接