有没有人知道是否可以使用谷歌的Volley库从一个NetworkImageView中清除缓存的图像?
我有一个阿凡达图像在一个NetworkImageView,并希望显示新的图像,一旦我已经上传到服务器。现在,如果我做profileImg.setImageUrl("myUrl", mImageLoader);,我会得到缓存的图像。
发布于 2015-01-28 21:57:02
所以我要迟一点回答我自己的问题。最后,我采取了一种不同的方法,以确保我总是得到一个阿凡达图像的最新副本,结果是非常简单。
我使用以下方法,而不是试图从缓存中清除单个图像。
int time = (int) (System.currentTimeMillis());//gets the current time in milliseconds
String myUrl = "www.mySite.com?timestamp=" + String.ValueOf(time);
profileImg.setImageUrl("myUrl", mImageLoader);这样做是在我调用的url中附加一个假想的参数,以获得具有当前时间戳的图像。这保证了,我总是打电话给一个独特的网址,因此,因此,总是得到最最新的版本的图像。
这种方法的优点在于,它不仅限于截击,而且可以使用,但您可以选择进行网络呼叫。
发布于 2014-08-14 07:05:42
看看这个:
1) 关闭缓存:如果希望禁用特定url的缓存,可以使用setShouldCache()方法,如下所示。
StringRequest stringReq = new StringRequest(....);
stringReq.setShouldCache(false);2) 删除特定的缓存:使用remove()删除的缓存。
yourRequestQueue.getCache().remove(url);3) 删除所有缓存:
yourRequestQueue.getCache().clear(url);另外,请查看这个链接这里。
希望这能有所帮助。
发布于 2017-11-28 13:23:14
在LruBitmapCache中,您应该执行diable (url,位图):
@Override
public void putBitmap(String url, Bitmap bitmap) {
// put(url, bitmap);
}这样,每次调用volley方法映像时,不要保存以捕获
https://stackoverflow.com/questions/25287161
复制相似问题