¿Cómo se puede cambiar el comportamiento de caché de disco por defecto en volley?

El servicio que estoy utilizando para obtener imágenes, como muchos sitios de este tipo, no tiene un encabezado de control de antememoria que indique cuánto tiempo debe almacenarse la imagen en caché. Volley utiliza un encabezado de control de caché http por defecto para decidir cuánto tiempo debe almacenar en caché las imágenes en el disco. ¿Cómo puedo anular este comportamiento predeterminado y mantener esas imágenes durante un período de tiempo determinado?

Gracias

Necesitaba cambiar la estrategia de almacenamiento en caché por defecto a una política de "cache all", sin tener en cuenta los encabezados HTTP.

Desea almacenar en caché durante un período de tiempo determinado. Hay varias maneras de hacerlo, ya que hay muchos lugares en el código que "tocan" la respuesta de la red. Sugiero una edición a la HttpHeaderParser ( parseCacheHeaders método en la línea 39):

 Cache.Entry entry = new Cache.Entry(); entry.data = response.data; entry.etag = serverEtag; entry.softTtl = softExpire; entry.ttl = now; // **Edited** entry.serverDate = serverDate; entry.responseHeaders = headers; 

Y otro a la clase Cache.Entry :

 /** True if the entry is expired. */ public boolean isExpired() { return this.ttl + GLOBAL_TTL < System.currentTimeMillis(); } /** True if a refresh is needed from the original data source. */ public boolean refreshNeeded() { return this.softTtl + GLOBAL_TTL < System.currentTimeMillis(); } 

Donde GLOBAL_TTL es una constante que representa el tiempo que desea que cada imagen viva en la caché.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.