2

私はこのようにピカソを初期化しています:

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

どういうわけか、画像がメモリ キャッシュにのみ保存され、ディスク キャッシュには保存されない場合。アプリを閉じて再度開くと、画像が再ダウンロードされます。

何か案は?

4

1 に答える 1

0

追加する特別なものがないように思われるので、以下のように Picasso を作成します。

Picasso picasso = Picasso.with(this);

毎回新しいインスタンスを作成するのではなく、インスタンスを再利用します (これは、Adapter.getView() から呼び出している場合は特に危険です)。そのため、Picasso.Builder は、別の Downloader や Listener を提供するなど、いくつかの動作をカスタマイズする必要がある場合にのみ使用してください。その場合は、Adapter.getView() 実装から実行しないでください。

OkHttpDownloaderを提供する必要はありません。クラスパスに OkHttp ライブラリがある場合は、デフォルトで既に提供されています。ダウンロード元の URL が HTTP 301 や HTTP 302 などの Http リダイレクトを受けていないかどうかを確認してください。Picasso は、少なくとも現在のバージョン (2.2.0) まではうまく処理できない場合があります。

それとは別に、コードは問題なく動作するはずです。幸運を!

于 2014-05-07T14:32:16.170 に答える