2012-04-03 25 views

回答

1

This問題的答案表明,URLConnection.setUseCaches(true)沒有任何效果。

Neil介紹的內容是如何在內部存儲的Android應用程序(手機內存)也可以緩存內容,保存在/ data/data/packagename/cache中。要回答您的原始問題,但應用於此功能,系統最終將控制這些區域,但您應該照看自己的內容,如API中所述。

+0

如果我保存所有需要getExternalCacheDir()並使用URLConnection.setUseCaches(true)的文件,URLConnection如何知道哪個文件對應哪個url?或者我需要手動加載這些文件(而不是通過URLConnection)? – 2012-04-03 10:10:00

+0

我認爲你需要手動做點什麼 - 一個快速的想法可能是使用URL的hashCode()命名文件,並檢查它們是否先存在;如果不是,則退回到URLConnection。 – 2012-04-03 10:23:27

+0

另一件要說的是,如果你使用的是WebView,它有一些內置的緩存選項 - 緩存在同一個地方結束,但在一定程度上爲你管理 - 所以你可能會發現更容易調查,而不是重新發明輪子。 – 2012-04-03 10:26:05

4

如果連接上的UseCaches標誌爲爲true,則允許連接使用它可以使用的任何緩存。如果錯誤,緩存將被忽略。默認值來自DefaultUseCaches,默認值爲true。**因此,要使用緩存,您需要自行實現一個緩存。將UseCaches標誌設置爲true可讓您使用可用緩存..但不實現任何緩存緩存自己..