2017-04-14 15 views
0

私は、画像をディスクにキャッシュする最も効率的な方法を理解しようとしています。そのため、飛行機モードでアプリが強制終了されて再起動されても永続的になります。Androidの永続的/オフラインイメージキャッシュ

  1. オープンアプリをし、すべての画像を取得し、それぞれのImageViewのの
  2. エアプレーンモード
  3. 開くアプリ
  4. 入れデバイスを殺すアプリもう一度に表示し、次のユースケースを考えてみましょう。

イメージをオフラインキャッシュに保存して、上記のシナリオで表示できるようにしようとしています。

私は、picassoとglideのドキュメントを調べましたが、ディスクキャッシュがこの場合に機能するかどうかは正確には分かりませんでした。

ピカソやグライドでこれを行う方法はありますか?私はこれをSQLiteなどに格納するためのカスタム実装を書く必要がないようにしようとしています。

非常に感謝しています! ありがとうございます

+0

私はピカソがオフラインのネットワーク機能を持っていると信じています。言い換えれば、Picassoはオンライン時に自動的にフェッチし、オフラインで使用するためにディスクに保存することができます。チェックアウト:http://stackoverflow.com/a/29812750/394933 – Brian

+0

ピカソはそのようなフックを提供していません。あなたのサーバーから適切なキャッシュヘッダーを設定することもできます(あるいは、OkHttpインターセプターで応答を書き直すこともできます)。 –

+0

@Brianは正しいです!詳細はこの答えを確認してください。 http://stackoverflow.com/a/34051356/3921977 –

答えて

0

グライドはあなたの側で特別な作業をせずに、デフォルトでこれを行います。要求されたイメージのどのバージョンをキャッシュに保存するかをカスタマイズすることもできます。

グライドを使用してイメージを取得するURLがオフラインで利用可能な場合は、グライドコールを開始できるように、それらをキャッシュする方法が必要ですオフライン。

あなたは、私がこのプロジェクトでそれをやった方法を見ることができます:https://github.com/KhalafMH/popular-movies-android.git

グライドキャッシュ参照を設定する方法について読むには:
http://bumptech.github.io/glide/doc/caching.html