Musiałem zmienić domyślny strategii buforowania do „cache wszystko” polityki, bez uwzględnienia nagłówków HTTP.
Chcesz buforować przez określony czas. Można to zrobić na kilka sposobów, ponieważ w kodzie jest wiele miejsc, które "dotykają" odpowiedzi sieci. Proponuję zmienił do HttpHeaderParser
(parseCacheHeaders
sposobu na linii 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;
a co innego Cache.Entry
zajęć:
/** 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();
}
gdzie GLOBAL_TTL
jest stałą reprezentującą żądany czas każdy obraz, aby żyć w pamięć podręczną.