web-dev-qa-db-fra.com

Comment recharger une image dans Glide à partir de la même URL?

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?

7
Ajay Chauhan

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,

  1. 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

11
Ramesh sambu

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);
2
Goku

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)
0
Alex

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);
0
Fenil Patel