2012-04-03 13 views

Antwort

1

This Frage Antwort schlägt vor, dass URLConnection.setUseCaches(true) hat keine Wirkung.

Was Neil dann beschreibt, ist, wie intern gespeicherte Android-Apps (Telefonspeicher) auch zwischengespeicherten Inhalt haben können, gehalten in/data/data/packagename/cache. Um Ihre ursprüngliche Frage zu beantworten, aber auf diese Funktion angewendet, hat das System letztendlich die Kontrolle über diese Bereiche, obwohl Sie sich um Ihren eigenen Inhalt kümmern sollten, wie in der API beschrieben.

+0

Wenn ich alle Dateien speichern muss ichExternalCacheDir() abrufen und URLConnection.setUseCaches (true) verwenden, wie kann URLConnection wissen, welche Datei welcher URL entspricht? Oder muss ich diese Dateien manuell laden (nicht über URLConnection)? –

+0

Ich denke, Sie müssen etwas manuell dagegen tun - eine schnelle Idee könnte sein, die Dateien mit dem hashCode() der URL zu benennen und zu prüfen, ob sie zuerst existieren; Wenn nicht, greifen Sie auf URLConnection zurück. –

+0

Die andere Sache zu sagen ist, dass, wenn Sie eine WebView verwenden, hat dies einige integrierte Caching-Optionen - der Cache endet an der gleichen Stelle, wird aber für Sie in gewissem Maße verwaltet - so könnte es einfacher finden untersuchen Sie das, anstatt das Rad neu zu erfinden. –

4

Wenn das UseCaches-Flag für eine Verbindung true ist, darf die Verbindung alle Caches verwenden, die haben. Wenn falsch ist, sind Caches zu ignorieren. Der Standardwert stammt von DefaultUseCaches, das standardmäßig auf true gesetzt ist. ** Um einen Cache zu verwenden, müssen Sie also einen selbst implementieren. Wenn Sie das UseCaches-Flag auf true jus setzen, können Sie den verfügbaren Cache verwenden, aber nicht implementieren Cache auf eigene ..