2017-04-14 81 views
0

我想弄清楚將圖像緩存到磁盤上的最佳方式和最有效的方式,這樣即使應用程序被終止並在飛行模式下重新啓動後,它們也會持續存在。請看下面的用例:Android中的持久/離線圖像緩存

  1. 打開應用程序,並獲得所有圖像,並在各自的ImageView再次
  2. 殺死空氣中的平面模式
  3. 打開應用
  4. 認沽設備的應用顯示出來。

我試圖讓圖像保存在脫機緩存中,以便它們可以在上面提到的場景中顯示。

我經歷了畢加索和滑翔的文檔,並不清楚他們的磁盤緩存是否可以在這種情況下工作。

有沒有辦法使用畢加索或滑翔來做到這一點?我試圖避免必須編寫一個自定義實現存儲在SQLite等。

任何幫助,高度讚賞! 謝謝

+0

我相信畢加索具有離線網絡功能。換句話說,畢加索應該可以在線時自動獲取並保存到磁盤以供離線使用。退房:http://stackoverflow.com/a/29812750/394933 – Brian

+0

畢加索提供沒有這樣的鉤子。雖然你可以從服務器設置正確的緩存頭(或者在OkHttp攔截器中重寫響應)。 –

+0

@布萊恩是正確的!查看這個答案的細節。 http://stackoverflow.com/a/34051356/3921977 –

回答

0

Glide會默認爲你做這個,沒有任何額外的工作在你身邊。您還可以自定義要存儲在緩存中的請求圖像的版本。

您需要考慮的一件重要事情是,如果使用Glide獲取圖像的URL可以脫機使用,否則您需要使用某種方法來緩存這些內容,以便您可以啓動Glide調用離線。

你可以看到我是如何做的這個項目:https://github.com/KhalafMH/popular-movies-android.git

要了解如何配置滑翔緩存見:
http://bumptech.github.io/glide/doc/caching.html