Fresco-Source-Analysis icon indicating copy to clipboard operation
Fresco-Source-Analysis copied to clipboard

请问如何在不清除缓存的情况下,强制直接从网络加载图片呢

Open skindhu opened this issue 8 years ago • 1 comments

请问如何在不清除缓存的情况下,强制直接从网络加载图片呢

skindhu avatar Jun 01 '16 03:06 skindhu

@huli1987 仅某个情况用时,你可以只清除指定url的缓存:

final ImageRequest request = ImageRequest.fromUri(Uri.parse("url"));
CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(request);
StagingArea.getInstance().remove(cacheKey);
Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(cacheKey);

你一定要达到这种目的的话,可以在ImageRequest设置最低缓存层级,禁止这次的请求获取缓存内容,但是它至少会检查内存缓存。

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse("url"))
   .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.BITMAP_MEMORY_CACHE)
   .build();

如果一定要全局这么搞,你可以在初始化的时候设置CacheKeyFactory给ImagePipelineConfig,让它每次返回不同的缓存key,就能达到你的目的了

desmond1121 avatar Jun 14 '16 11:06 desmond1121