JSONからデータベースにデータを保存するルーチンを実装しました。その後、ユーザーがオフラインになると、すべてのデータを見ることができます。ただし、ピカソは最初の実行後に画像をロードしません。しかし、アプリケーションをオンライン モードで 2 回実行すると、その後 picasso はオフライン モードでキャッシュから画像を読み込むことができます。(最初の実行時に画像をキャッシュする必要がありますが、機能していません)
提案をいただければ幸いです
JSONからデータベースにデータを保存するルーチンを実装しました。その後、ユーザーがオフラインになると、すべてのデータを見ることができます。ただし、ピカソは最初の実行後に画像をロードしません。しかし、アプリケーションをオンライン モードで 2 回実行すると、その後 picasso はオフライン モードでキャッシュから画像を読み込むことができます。(最初の実行時に画像をキャッシュする必要がありますが、機能していません)
提案をいただければ幸いです
https://stackoverflow.com/a/23281195/3664628
Picasso にはディスク キャッシュがありません。その機能に使用している HTTP クライアントに委任します (キャッシュ制御の HTTP キャッシュ セマンティクスに依存します)。このため、あなたが求める行動は無料で得られます...
主な理由は、サイズが原因で他のイメージが古いイメージをキャッシュから追い出している可能性があります。小さいバージョンをロードするか、このようにメモリ キャッシュのサイズを増やすことができます
Picasso p = new Picasso.Builder(context)
.memoryCache(new LruCache(Size))
.build();
キャッシュに保存したくない場合は、Memory Policyを使用してさらに除外することもできます。
Picasso は、要求された画像を最初にメモリから取得しようとします。Picasso にこのステップをスキップしてもらいたい場合はmemoryPolicy(MemoryPolicy policy, MemoryPolicy... additional)
、Picasso リクエストの作成者に連絡してください。と の 2 つの値をMemoryPolicy
持つ単純な列挙型です。このようなNO_CACHE
NO_STORE
Picasso
.with(context)
.load(UsageExampleListViewAdapter.eatFoodyImages[1])
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageViewFromDisk);
追加のソース: futurestud.io