2015-05-26 8 views
6

Sto usando biblioteca facebook Fresco e SimpleDraweeView per avatar immagine la visualizzazione di un file:Come posso aggiornare l'immagine di affresco SimpleDraweeView, se è stato impostato un tempo da setImageURI

Uri avaURI = Uri.fromFile(new File(getCacheDir(), Constants.AVA_FILE_NAME)); 
    simpleDrawee.setImageURI(avaURI); 

Ma cosa succede se ho cambiato il file con l'immagine (cancellato il file precedente e creato lo stesso con una nuova immagine), come posso aggiornare (aggiornare) SimpleDraweeView? Mostra ancora la vecchia versione dell'immagine. (Ho provato a disabilitare la cache tramite Fresco.getImagePipeline().evictFromMemoryCache(avaURI); ma non è stato di aiuto).

risposta

12

Credo che tu fossi sulla buona strada. Ci sono altri due livelli di archiviazione in cui può esistere la vecchia immagine, da cui è molto probabile che si recuperi. Questi scadono dopo 60 giorni, credo, quindi dovrà essere svuotato anche.

Fresco.getImagePipeline().evictFromMemoryCache(avaURI); 

Fresco.getImagePipelineFactory().getMainDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString())); 
Fresco.getImagePipelineFactory().getSmallImageDiskStorageCache().remove(new SimpleCacheKey(avaURI.toString())); 
+0

capitati per lo stesso problema, un modo più pulito per fare questo? –

+3

Credo che ci abbiano fornito una soluzione più pulita attraverso l'uso di un metodo all-in-one: Fresco.getImagePipeline(). EvictFromCache (uri); – frogmanx

+0

uomo, tu l'uomo! ;) –

1
ImagePipeline imagePipeline = Fresco.getImagePipeline(); 
    imagePipeline.evictFromCache(Uri); 
    imagePipeline.clearCaches(); 
draweeView.setImageURI(Uri); 
Problemi correlati