J'utilise le chargeur d'images Glide pour charger une image à partir d'une URL spécifique. Désormais, si je mets à jour l'image sur la même URL, Glide continue d'afficher l'image mise en cache dans ma vue image. Comment recharger l'image à partir de la même URL?
Selon le Glide
wiki Caching-and-Cache-Invalidation
1 .StringSignature
Vous pouvez utiliser StringSignature pour mélanger la date et l'heure de modification du fichier.
Files - Vous pouvez utiliser StringSignature
pour mélanger l'heure de modification de la date du fichier.
Urls - Bien que le meilleur moyen d'invalider les URL soit de s'assurer que le serveur modifie l'URL et met à jour le client lorsque le contenu de l'URL change, vous pouvez également utiliser StringSignature pour mélanger des métadonnées arbitraires
Glide.with(yourFragment)
.load(url)
.signature(new StringSignature(String.valueOf(System.currentTimeMillis()))
.into(yourImageView);
Si tout échoue et que vous ne pouvez ni modifier votre identifiant ni suivre les métadonnées de version raisonnables,
vous pouvez également désactiver entièrement la mise en cache du disque en utilisant diskCacheStrategy()
et DiskCacheStrategy.NONE
Glide.with (Activity.this) .load (url) .diskCacheStrategy (DiskCacheStrategy.NONE ) .SkipMemoryCache (true) . dans (imageView);
Référence https://github.com/bumptech/glide/wiki/Caching-and-Cache-Invalidation
Utilisez .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);
Ajouter
signature (nouvelle 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)
Utilisez le code ci-dessous, cela fonctionne bien pour moi. Définissez diskCacheStrategy (DiskCacheStrategy.NONE) et skipMemoryCache (true) . Il chargera l'image à chaque fois.
Glide.with(Activity.this)
.load(theImagePath)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(myImageViewPhoto);