我正在像这样初始化毕加索:
Picasso picasso = new Picasso.Builder(this)
.downloader(new OkHttpDownloader(this))
.build();
picasso.setDebugging(true);
不知何故,如果图像只保存到内存缓存中,永远不会保存到磁盘缓存中。关闭应用程序并重新打开它会导致重新下载图像。
有任何想法吗?
看起来你没有什么特别的东西要添加,像下面这样创建毕加索:
Picasso picasso = Picasso.with(this);
它重用该实例,而不是每次都创建一个新实例(如果您从 Adapter.getView() 调用它,这是特别危险的)。因此,仅当确实需要自定义某些行为时才使用 Picasso.Builder,例如提供不同的下载器或侦听器,如果这样做,请不要从 Adapter.getView() 实现中进行。
您不需要提供OkHttpDownloader,如果您在类路径中有 OkHttp 库,则默认情况下已提供。检查您下载的 URL 是否没有遭受任何 Http 重定向,例如 HTTP 301 或 HTTP 302,Picasso 在某些情况下不能很好地处理它,至少在当前版本 (2.2.0) 之前是这样。
除此之外,您的代码看起来不错并且应该可以工作。祝你好运!