案件でPicassoのキャッシュを無効にする事になり、ちょっと調べた情報をまとめる。
Picassoのデフォルトの動作
Picassoのデフォルトの動作は以下
- メモリキャッシュはアプリケーションRAMの15%
- ディスクキャッシュはストレージサイズの2%で最大50MB
- 注:これはAPI 14+で、またはOkHttpのようなすべてのAPIレベルでディスクキャッシュを提供するスタンドアロンライブラリを使用している場合にのみ利用可能
- ディスクおよびネットワークアクセス用の3つのダウンロードスレッド。
Picassoは常に最初にメモリキャッシュから画像をロードしようとする。
メモリキャッシュになければ、ディスクキャッシュをチェックする。
ディスクキャッシュもなければネットワーク処理をリクエストする。
つまり、メモリ -> ディスク -> ネットワーク
の順にチェックする。
また、Picassoで表示する画像はメモリ/ディスクキャッシュの両方に保管される。
キャッシュ無効
メモリキャッシュ、ディスクキャッシュを両方とも無効にする必要がある。
Picasso.get()
.load(url)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.networkPolicy(NetworkPolicy.NO_CACHE)
.into(imageView);
参考リンク
- Picasso — Influencing Image Caching https://futurestud.io/tutorials/picasso-influencing-image-caching
- Picassoでキャッシュの簡単設定 - Qiita https://qiita.com/hoonokonoko/items/fc4a16bf187faf39979a