1

JSONからデータベースにデータを保存するルーチンを実装しました。その後、ユーザーがオフラインになると、すべてのデータを見ることができます。ただし、ピカソは最初の実行後に画像をロードしません。しかし、アプリケーションをオンライン モードで 2 回実行すると、その後 picasso はオフライン モードでキャッシュから画像を読み込むことができます。(最初の実行時に画像をキャッシュする必要がありますが、機能していません)

提案をいただければ幸いです

4

2 に答える 2

3

https://stackoverflow.com/a/23281195/3664628

Picasso にはディスク キャッシュがありません。その機能に使用している HTTP クライアントに委任します (キャッシュ制御の HTTP キャッシュ セマンティクスに依存します)。このため、あなたが求める行動は無料で得られます...

于 2016-03-02T06:09:03.700 に答える
-1

主な理由は、サイズが原因で他のイメージが古いイメージをキャッシュから追い出している可能性があります。小さいバージョンをロードするか、このようにメモリ キャッシュのサイズを増やすことができます

Picasso p = new Picasso.Builder(context)
.memoryCache(new LruCache(Size))
.build();

キャッシュに保存したくない場合は、Memory Policyを使用してさらに除外することもできます。

Picasso は、要求された画像を最初にメモリから取得しようとします。Picasso にこのステップをスキップしてもらいたい場合はmemoryPolicy(MemoryPolicy policy, MemoryPolicy... additional)、Picasso リクエストの作成者に連絡してください。と の 2 つの値をMemoryPolicy持つ単純な列挙型です。このようなNO_CACHENO_STORE

Picasso
.with(context)
.load(UsageExampleListViewAdapter.eatFoodyImages[1])
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageViewFromDisk);

追加のソース: futurestud.io

于 2016-03-02T06:26:12.640 に答える