I benötigt, um die Standard-Caching-Strategie zu einer „Cache all“ Politik zu ändern, ohne zu berücksichtigen, die HTTP-Header.
Sie möchten für einen bestimmten Zeitraum zwischenspeichern. Es gibt mehrere Möglichkeiten, dies zu tun, da es viele Stellen im Code gibt, die die Netzwerkantwort "berühren". Ich schlage vor, eine Bearbeitung auf die HttpHeaderParser
(parseCacheHeaders
Methode in Zeile 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;
und andere zu Cache.Entry
Klasse:
/** 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();
}
wo GLOBAL_TTL
eine Konstante ist, die die Zeit, die Sie jedes Bild wollen leben in der Cache.