【发布时间】:2013-07-09 16:15:20
【问题描述】:
我需要通过从服务器再次请求来任意替换缓存的图像。
我目前使用 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 在 java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:350) 在 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) 在 com.nostra13.universalimageloader.core.assist.MemoryCacheUtil.removeFromCache(MemoryCacheUtil.java:102) 在 uk.frequency.glance.android.util.ImageLoadingManager.loadImage(ImageLoadingManager.java:120)
【问题讨论】:
-
哪个UIL版本?显示完整的错误堆栈跟踪。
-
问题已编辑@NOSTRA
标签: android caching universal-image-loader concurrentmodification