Glide画像ローダーを使用して特定のURLから画像をロードしていますが、画像を同じURLに更新しても、Glideはキャッシュされた画像をimageviewに表示し続けます。同じURLから画像をリロードする方法は?
Glide
wiki _Caching-and-Cache-Invalidation
_による
1 .StringSignature
StringSignatureを使用して、ファイルの日付変更時刻を混在させることができます
ファイル-StringSignature
を使用して、ファイルの日付変更時刻を混在させることができます。
Urls-URLを無効にする最善の方法は、サーバーがURLを変更し、URLのコンテンツが変更されたときにクライアントを更新することですが、 StringSignatureを使用して任意のメタデータを混ぜる
_Glide.with(yourFragment)
.load(url)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis()))
.into(yourImageView);
_
他のすべてが失敗し、識別子を変更することも、適切なバージョンのメタデータを追跡することもできない場合、
diskCacheStrategy()
および_DiskCacheStrategy.NONE
_を使用して、ディスクキャッシュを完全に無効にすることもできます。Glide.with(Activity.this).load(url).diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).into(imageView);
リファレンス https://github.com/bumptech/glide/wiki/Caching-and-Cache-Invalidation
追加
signature(new ObjectKey(String.valueOf(System.currentTimeMillis()))))
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.cover_placeholder);
requestOptions.error(R.drawable.no_image_available);
requestOptions.signature(
new ObjectKey(String.valueOf(System.currentTimeMillis())));
Glide.with(MosaicFragment.this)
.setDefaultRequestOptions(requestOptions)
.load(finalPathOrUrl)
.diskCacheStrategy(DiskCacheStrategy.NONE)
を使用します
Glide.with(context)
.load(url)
.apply(new RequestOptions()
.placeholder(R.drawable.placeholder)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true))
.into(ImageView);
数時間苦労した後、私は解決策を見つけました.StringSignatureを追加することにより、ファイルの日時を混在させることができます。そのため、ファイルが読み込まれると、常に最新のものを使用します。これのように
Glide.with(this)
.load(image_url)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(imageview);
リファレンス: https://github.com/bumptech/glide/wiki/Caching-and-Cache-Invalidation
以下のコードを使用してください、それは私にとってはうまくいきます。 diskCacheStrategy(DiskCacheStrategy.NONE)およびskipMemoryCache(true)を設定します。毎回画像を読み込みます。
Glide.with(Activity.this)
.load(theImagePath)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(myImageViewPhoto);