【问题标题】:Picasso max age and how often check for new image毕加索最大年龄和检查新图像的频率
【发布时间】:2015-11-02 03:55:33
【问题描述】:

我正在使用 Picasso 库来加载图像。一切都正常工作,但我仍然有很多图像流量到服务器。 OKHttpClient 是否有一个参数,例如 max-age 来发送多久检查一次图像的新版本? 毕加索如何知道服务器上的图像是否没有改变? 在决定是从缓存还是磁盘加载之前,Dose Picasso 每次都会向服务器发送一个请求?

【问题讨论】:

  • 你找到解释了吗,我也在找。
  • 我可以控制服务器上响应集的标头刷新图像的频率。
  • 为什么毕加索每次在决定是从缓存还是磁盘加载之前都会向服务器发送请求?每次我使用 Picasso 加载图像时都会看到一个请求,我该如何停止这种行为。
  • 我不认为你可以阻止这个,也许你可以尝试使用一些其他的缓存库,比如 Volley,可能会给你更多的选择。

标签: android picasso okhttp image-loading


【解决方案1】:

我在后端使用 Google 应用引擎,它的缓存每 24 小时清除一次(或您设置的任何内容)。这会触发毕加索重新加载图像,所有人都认为图像是相同的。清除 GAE 缓存后的唯一区别是响应是 204 而不是 200(这应该不是问题),但 picasso 认为有一个新图像。或者缓存被清除后可能会有其他不同的东西。

我所做的只是使用本地图像.networkPolicy(NetworkPolicy.OFFLINE) 和 onError 我从互联网加载图像。

.into(view, new Callback() {
                        @Override
                        public void onSuccess() {
                        }

                        @Override
                        public void onError() {
                            //reload request 
                        }
                    });

因此,如果我想每 30 天检查一次新图像,我会保留最后一次更新日期并从互联网重新加载它们,否则会离线使用。 可能有更有效的方法来做到这一点。

【讨论】:

    猜你喜欢
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2021-05-15
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多