我需要知道缓存的URI版本在fresco缓存中的磁盘上需要多长时间?何时从fresco android中的磁盘中删除图像缓存?
2
A
回答
2
由于它在http://frescolib.org/docs/caching.html#trimming-the-caches写:
在配置图像流水线,您可以设置每个缓存的 的最大尺寸。但有时候你可能想要比 低。例如,您的应用程序可能需要缓存可能需要更多空间并挤出Fresco的其他类型的数据。 或者您可能正在检查整个设备是否在存储空间中运行了 。
Fresco的高速缓存实现了DiskTrimmable或MemoryTrimmable 接口。这些是你的应用程序可以告诉他们执行紧急驱逐的钩子。
然后,您的应用程序可以使用实现DiskTrimmableRegistry和MemoryTrimmableRegistry 接口的对象 配置管道。
这些对象必须保留微调列表。他们必须使用 特定于应用程序的逻辑来确定内存或磁盘空间何时必须保留 。然后他们通知可修饰物体执行其修剪。
所以,如果你不指定DiskTrimmable或MemoryTrimmable而配置您的ImagePipeline将使用默认DiskTrimmable,MemoryTrimmable。因此,在源寻找默认值后,我发现这一点:
private static DiskCacheConfig getDefaultMainDiskCacheConfig(final Context context) {
return DiskCacheConfig.newBuilder()
.setBaseDirectoryPathSupplier(
new Supplier<File>() {
@Override
public File get() {
return context.getApplicationContext().getCacheDir();
}
})
.setBaseDirectoryName("image_cache")
.setMaxCacheSize(40 * ByteConstants.MB)
.setMaxCacheSizeOnLowDiskSpace(10 * ByteConstants.MB)
.setMaxCacheSizeOnVeryLowDiskSpace(2 * ByteConstants.MB)
.build();
}
所以结论是未来:当内存已满(40 ByteConstants.MB或10 ByteConstants.MB或2 ByteConstants.MB) - 壁画将删除旧记录并写入新记录(图像)。 也许壁画使用this method。
相关问题
- 1. 清除缓存后图像不会从磁盘上删除AFNetworking
- 2. 将图像缓存到磁盘
- 3. 如何从android应用程序中删除缓存的图像
- 4. 从缓存中删除特定图像?
- 5. 删除图像缓存
- 6. 预加载和缓存图像,然后从缓存中删除旧图像
- 7. 毕加索:从磁盘加载缓存图像太慢
- 8. 加密磁盘缓存
- 9. 将下载的图像缓存到磁盘
- 10. PHP中磁盘缓存清除/大小限制的模式?
- 11. 从离子应用程序的缓存中删除图像
- 12. 毕加索不缓存磁盘上的图像
- 13. 缓存AlamofireImage响应磁盘
- 14. 从Memcached/Dalli缓存中排除图像
- 15. 如何清除保存从磁盘
- 16. 将BLOB图像从PHP中的数据库保存到磁盘
- 17. 从内存中嵌入HTML在c + +磁盘上的图像
- 18. 当磁盘空间不足时从表中删除多行
- 19. 在fwrite中检测磁盘删除C
- 20. Readyboost v磁盘缓存
- 21. 直接使用retriveImage()将图像缓存到磁盘?
- 22. 从删除虚拟机azure detatch磁盘
- 23. 如何正确保存磁盘缓存中的数据?
- 24. 如何将图像存储到Java中的磁盘?
- 25. pread/pwrite,缓冲区和磁盘缓存
- 26. 如何在IntelliJ IDEA中从磁盘删除文件?
- 27. Azure删除孤立磁盘
- 28. 从磁盘缓冲读取
- 29. 什么时候在iOS上清除磁盘缓存?
- 30. iphone - 将图像存储到磁盘
你不问这是开发者吗? –
请参阅[文档](http://frescolib.org/docs/caching.html#_) –
我无法在文档中找到任何关于它的提及:( –