【问题标题】:Picasso: Cache and redirected URLsPicasso:缓存和重定向 URL
【发布时间】:2017-01-04 20:53:21
【问题描述】:

以下是我目前的理解:

  1. 我使用 Picasso 将 http://www.example.com/imageA.png 加载到我的 imageView 中。

  2. Picasso 下载 imageA.png 并在内部将其缓存为“http://www.example.com/imageA.png”。

  3. 我离线,打开我的应用程序,Picasso 尝试再次将http://www.example.com/imageA.png 加载到我的 imageView 中。它从缓存中加载图像。即使我的网络不工作,我也可以看到 imageA。

这一切都很好。

例如http://www.example.com/imageA.png 现在重定向到http://www.example.com/imageB.png,然后我重复步骤 1 和 2。

这一次,我相信 Picasso 将其缓存为 http://www.example.com/imageB.png,因此当我在离线模式下打开我的应用时,我看不到 imageA,因为它被缓存为 imageB。

我说的对吗?

有没有办法强制毕加索将其缓存为原始 URL?

【问题讨论】:

    标签: android picasso


    【解决方案1】:

    【讨论】:

    • 谢谢@dumazy,我试过了,但还是不行。图像通过自定义Transformation,毕加索仍然使用stableKey,还是使用自定义Transformation中定义的那个?
    • 你试过在调试模式下检查 stableKeys 吗? Android Studio 允许您深入研究依赖项的反编译代码,您可以在其中放置断点。这应该会给你更多信息
    【解决方案2】:

    Picasso 仅管理内存缓存,因此 stableKey 仅用于此目的。磁盘缓存由 OkHttp 管理。它的行为无法改变,因为 com.squareup.okhttp.Cache 是最终类。

    【讨论】:

      猜你喜欢
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 2015-10-01
      • 2014-04-25
      • 2018-08-27
      相关资源
      最近更新 更多