2017-01-02 2 views
0

J'utilise Picasso pour la visionneuse d'image, qui est capable de faire pivoter les images. Le problème est que lorsque je fais pivoter l'image et que j'essaie de la mettre à jour dans la visionneuse, elle ne se met pas à jour avant de "détruire" l'application ou d'utiliser la politique de mémoire - .memoryPolicy(MemoryPolicy.NO_CACHE). J'ai essayé d'utiliser l'application sans cache, mais c'est plutôt lent, donc ce n'est pas une solution. Par conséquent, je suis à la recherche de la façon de nettoyer l'image de la mémoire et mettre à jour la vue. Je ne peux pas utiliser le paramètre .rotate(90f), car Picasso gère la rotation correcte par lui-même, il ne fonctionne pas seulement temporaire jusqu'à ce que la mémoire soit nettoyée.Comment nettoyer le cache mémoire pour Picasso?

Ce problème n'est pas un problème de cache de fichiers, c'est un problème de cache mémoire (basé sur mes tests avec les paramètres de cache mémoire). J'ai également essayé d'invalider le cache de fichiers pour être sûr, mais cela n'a pas aidé comme je m'y attendais.

Picasso.with(context).invalidate(filePath); 

Picasso 
.with(context) 
.load(filePath) 
.into(imageView); 

Répondre

0

Uff, je l'ai finalement trouvé. Avant j'ai utilisé Glide, qui a paramétr signature. Picasso a quelque chose de similaire appelé stableKey. Quand je l'utilise, je n'ai pas à me soucier du cache, je l'active et Picasso gère le reste.

Picasso 
.with(context) 
.load(filePath) 
.stableKey(uniqueFileAttribute) 
.into(imageView);