gpt4 book ai didi

android - picasso 实际上是如何缓存图像的

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:51 27 4
gpt4 key购买 nike

我想知道 Picasso Library 如何在应用程序中缓存图像。我知道它使用 HttpHeaders 检查天气以从网络获取图像。

但是,缓存图像是否有任何时间范围?
比如在一天后使缓存失效之类的?

问题是我的项目正在从网络加载大量小图像。有时,新图像会反射(reflect)在下一次发布中。但是,有时它不会。

The worst part is, some images got reflected the changes while others are not even though the changes are made at the same time.
But, when I uninstall the App, all the images got reflected the changes (of course.)

Picasso 中一定有关于缓存的东西。

请不要告诉我使用 OkHttp 来控制 Picasso 中的缓存。
我的项目使用的是 Apache 的 AsyncHttpClient,它太大了,无法更新。
(当然不是我做的。我只是用 UrlConnection 创建一个小的网络助手,而不是实现整个 AsyncHttpClient。)

无论如何,任何想法或指示将不胜感激。
底线:没有 OkHttp。只是想知道 Picasso 上的缓存控制机制。

问候

最佳答案

picasso 只有内存缓存。

如果图像在内存缓存中,则使用它。否则,当图像从其远程源(网络、内容提供商、文件系统等)加载时,它会被放置在内存缓存中以供将来查找。

内存缓存是 LRU,因此使用的图像越多,它就越有可能保留在缓存中。随着时间的推移,不常被请求的图像将被逐出。没有时间驱逐,内存缓存不遵守任何 HTTP header 的缓存语义(如果图像来自网络)。

Picasso 没有磁盘缓存。它 100% 依赖 HTTP 客户端(以正在使用的客户端为准)。将自动为 OkHttp 或 HttpUrlConnection(如果使用其中一个)安装缓存,或者如果已经存在,则将使用缓存。

如果您使用的是自定义 HTTP 客户端,则启用缓存的负担由调用者承担。

关于android - picasso 实际上是如何缓存图像的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24952627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com