我想知道Picasso Library究竟是如何在应用程序中缓存图像的.我知道它使用HttpHeaders来检查天气以从网络中获取图像.
但是,有没有时间框架缓存图像?
就像在一天之后无效的缓存一样?
问题是我的项目是从网络上加载大量的小图像.有时,新图像会在下次发布时反映出来.但是,有时候,事实并非如此.
最糟糕的是,一些图像反映了变化,而其他图像则不是同时发生的变化.
但是,当我卸载App时,所有图像都反映了这些变化(当然.)
毕加索必须有一些关于缓存的东西.
请不要告诉我使用OkHttp来控制Picasso中的缓存.
我的项目是使用Apache的AsyncHttpClient,它太大了,无法更新.
(当然不是我.我只是用UrlConnection创建一个小型网络助手,而不是实现整个AsyncHttpClient.)
无论如何,任何想法或指针将不胜感激.
底线:没有OkHttp.只想了解Picasso上的缓存控制机制.
问候
毕加索只有一个内存缓存.
如果图像在内存缓存中,则使用它.否则,当从远程源(网络,内容提供商,文件系统等)加载图像时,它将被放置在内存高速缓存中以供将来查找.
内存缓存是一个LRU,因此使用的图像越多,它就越有可能保留在缓存中.经常未请求的图像将随着时间的推移逐出.没有时间驱逐,内存缓存不遵守任何HTTP头的缓存语义(如果图像来自网络).
毕加索没有磁盘缓存.它依赖于HTTP客户端(无论使用哪个)来实现100%的此功能.将自动为OkHttp或HttpUrlConnection(如果使用的话)安装缓存,或者如果已经使用了缓存.
如果您使用的是自定义HTTP客户端,则启用缓存的负担就在于调用者.