【问题标题】:Universal Image Loader: I get ConcurrentModificationException when trying to remove image from cache通用图像加载器:尝试从缓存中删除图像时出现 ConcurrentModificationException
【发布时间】: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


【解决方案1】:

这是已知的错误:https://github.com/nostra13/Android-Universal-Image-Loader/issues/265

在 UIL v1.8.5 中修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-09
    • 2023-03-18
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 2013-06-01
    相关资源
    最近更新 更多