我需要通过从服务器再次请求来任意替换缓存的图像。
我目前正在使用removeFromCache,如下所示:
public void loadImage(String url, ImageView view, boolean updateCache){
if(updateCache){
MemoryCacheUtil.removeFromCache(url, ImageLoader.getInstance().getMemoryCache());
}
ImageLoader.getInstance().displayImage(url, view);
}
问题是有时会抛出ConcurrentModificationException。
最好的方法是什么?
UIL版本是1.8.4
堆栈追踪:
致命的例外:主要 java.util.ConcurrentModificationException at java.util.LinkedHashMap $ LinkedHashIterator.nextEntry(LinkedHashMap.java:350) at java.util.LinkedHashMap $ KeyIterator.next(LinkedHashMap.java:370) 在java.util.HashSet。(HashSet.java:76) 在com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache.keys(LruMemoryCache.java:124) at com.nostra13.universalimageloader.core.assist.MemoryCacheUtil.removeFromCache(MemoryCacheUtil.java:102) 在uk.frequency.glance.android.util.ImageLoadingManager.loadImage(ImageLoadingManager.java:120)
答案 0 :(得分:0)
这是已知错误:https://github.com/nostra13/Android-Universal-Image-Loader/issues/265
已在UIL v1.8.5 中修复。