我需要通过从服务器再次请求来任意替换缓存的图像。
我目前正在使用 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.HashSet 的 java.util.LinkedHashMap$KeyIterator.next(LinkedHashMap.java:370) 的 java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:350) 的主要 java.util.ConcurrentModificationException。 (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)