1

我遵循了开发人员指南,并通过在我的应用程序的 onCreate() 方法中包含以下代码来安装 HttpResponseCache:

try {
  File httpCacheDir = new File(context.getCacheDir(), "http");
  long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
  HttpResponseCache.install(httpCacheDir, httpCacheSize);
}   catch (IOException e) {
       Log.i(TAG, "HTTP response cache installation failed:" + e);      
}

现在,在某个时候,我在这个应用程序中启动了一个活动,并使用以下代码获取一个 URL:

URL url = new URL("http://www.android.com/");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
  InputStream in = new BufferedInputStream(urlConnection.getInputStream());
  readStream(in);
} finally {
  urlConnection.disconnect();
}

当我获取 URL 以告诉它使用已安装的缓存时,我是否必须做一些事情?或者在这个应用程序中启动的任何活动会自动使用它吗?

例如,在此示例代码中,他们调用connection.setUseCaches(true). 那有必要吗?

4

1 回答 1

1

只要您在连接上调用HttpURLConnection,安装的 HttpResponseCache 就会被使用。HttpsURLConnectionsetUseCaches(true)

来自 Web 服务器的响应也需要是可缓存的。

于 2014-06-29T10:50:42.710 回答