UIL Custom Downloader不使用缓存中的内容

时间:2014-01-10 11:03:50

标签: android image imageview universal-image-loader

我已经实现了一个自己的下载器,但似乎他没有使用他已经检索过的缓存中的图像。我的初始化:

private void initImageLoader() {
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
            .imageDownloader(new SocketDownloader(this))
            .memoryCacheSizePercentage(25)
            .writeDebugLogs()
            .build();
    ImageLoader.getInstance().init(config);
}

这是我在logcat中找到的:

01-10 11:47:26.899: D/ImageLoader(2345): Start display image task [socket://images/test-
icon-1.png_53x53]
01-10 11:47:26.899: D/ImageLoader(2345): Load image from network [socket://images/test-
icon-1.png_53x53]
01-10 11:47:26.899: D/Request(2345): request {"path":"images\/test-
icon-1.png","action":"getimage","actionid":0}
01-10 11:47:28.719: D/ImageLoader(2345): Subsample original image (200x200) to 100x100 
(scale = 2) [socket://images/test-icon-1.png_53x53]
01-10 11:47:28.729: D/ImageLoader(2345): ImageAware is reused for another image. Task is 
cancelled. [socket://images/test-icon-1.png_53x53]
01-10 11:47:28.839: D/ImageLoader(2345): Start display image task [socket://images/test-
icon-1.png_53x53]
01-10 11:47:28.839: D/ImageLoader(2345): Load image from network [socket://images/test-
icon-1.png_53x53]
01-10 11:47:28.839: D/Request(2345): request {"path":"images\/test-
icon-1.png","action":"getimage","actionid":0}

在nexus 7上运行,它应该有足够的堆来实际操作2个图像。感谢您回复有用的提示。

1 个答案:

答案 0 :(得分:0)

正如我在日志中看到的那样,在图像加载过程中取消了上一个任务。因此,图像加载被中断,因为ImageView被重用了。您似乎滚动列表,icon-1离开屏幕。然后滚动并再次显示icon-1但它没有缓存在内存中,因为它没有完全下载(任务被中断)。所以ImageLoader再次开始加载。 所以没关系。

BTW我建议在磁盘上启用缓存。它可以防止多余的下载。