LoginSignup
3
2

More than 3 years have passed since last update.

【Kotlin】Glideの画像データキャッシュを更新したい

Posted at

Glideは同じURLからの読み込みだとキャッシュを利用する

Glideのキャッシュ機能は読み込み回数を減らせて便利です。
しかしサーバーのデータを更新してもURLが同じなら、キャッシュから読み込んじゃうので、更新したデータが反映されずに困ることがあります。
以下に回避方法を2種類記載します。

回避策1:キャッシュからの読み込みをスキップする

Glide.with(this)
  .load(url)
  .diskCacheStrategy(DiskCacheStrategy.NONE) //ディスクキャッシュをスキップ
  .skipMemoryCache(true) //メモリキャッシュをスキップ
  .into(view)

この方法でキャッシュをスキップして更新されたデータを読み込むことはできます。
しかし元々保存されているキャッシュが更新されるわけではないので、毎回キャッシュをスキップしないと古いデータが表示されてしまします。

回避策2:キャッシュを全削除する

//ディスクキャッシュをクリア
//バックグラウンドスレッドで実行する必要がある
Glide.get(applicationContext).clearDiskCache()

まずはディスクキャッシュを削除します。
これはバックグラウンドスレッドで実行しないとエラーになります。

//メモリキャッシュをクリア
//メインスレッド で実行する必要がある
Glide.get(applicationContext).clearMemory()

メモリキャッシュを削除します。
これはメインスレッドで実行しないとエラーになります。

スレッドが別れててややこしいですが、私はキャッシュの削除で思い通りの動作が実現しました。

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2