Android Picasso库只缓存内存中的文件

时间:2014-02-11 23:06:59

标签: android picasso

我正在这样初步化毕加索:

Picasso picasso = new Picasso.Builder(this) 
                 .downloader(new OkHttpDownloader(this)) 
                 .build(); 
picasso.setDebugging(true);

不知何故,如果图像只保存到内存缓存中,则永远不会保存到磁盘缓存中。关闭应用程序并重新打开它会导致重新下载图像。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

因为看起来你没有任何特别的东西需要添加,所以创建毕加索如下:

Picasso picasso = Picasso.with(this);

它重用了实例,而不是每次都创建一个新实例(如果您从Adapter.getView()调用它,这将特别危险)。因此,只有在自定义某些行为时才使用Picasso.Builder,例如提供不同的Downloader或Listener,如果这样做,请不要从Adapter.getView()实现中执行此操作。 / p>

您不需要提供 OkHttpDownloader ,如果您在类路径中有OkHttp库,则默认情况下已提供它。检查您下载的网址是否没有遭受任何Http重定向,例如HTTP 301或HTTP 302,Picasso在某些情况下不能很好地处理它,至少在当前版本(2.2.0)之前

除此之外,您的代码看起来很好,应该可以工作。祝你好运!