Invalidar caché en Picasso

Resuelto Maarten asked hace 54 años • 14 respuestas

Cargo una imagen desde el disco usando Picasso , por ejemplo, Picasso.with(ctx).load(new File("/path/to/image")).into(imageView)pero cada vez que guardo una nueva imagen en ese archivo y actualizo miImageView , Picasso todavía tiene el mapa de bits en caché.

¿Es posible invalidar el caché en Picasso?

Maarten avatar Jan 01 '70 08:01 Maarten
Aceptado

En realidad, según su propia respuesta, existe una manera más fácil de hacerlo sin bifurcar la biblioteca. Agregue esta clase al paquete com.squareup.picasso.

package com.squareup.picasso;

public class PicassoTools {

    public static void clearCache (Picasso p) {
        p.cache.clear();
    }
}

Debido a que el caché tiene visibilidad de paquetes, esta clase de utilidad puede borrar el caché por usted. Sólo tienes que llamarlo:

PicassoTools.clearCache(Picasso.with(context));
shalafi avatar May 08 '2014 14:05 shalafi

En las versiones recientes de Picasso, hay un nuevo método para invalidar, sin ninguna solución alternativa, por lo que creo que la clase personalizada PicassoTools mencionada anteriormente ahora está obsoleta en este caso.

Picasso.with(getActivity()).invalidate(file);
mes avatar Feb 15 '2015 09:02 mes

Cancele la verificación de la caché de memoria y de la caché de disco indicando la política de memoria mediante el indicador: emoryPolicy.NO_CACHE y NetworkPolicy.NO_CACHE como se muestra a continuación:

   mPicasso.with(mContext)
            .load(url)
            .memoryPolicy(MemoryPolicy.NO_CACHE )
            .networkPolicy(NetworkPolicy.NO_CACHE)
            .resize(512, 512)
            .error(R.drawable.login)
            .noFade()
            .into(imageView);