之前我们在软件开发中,cache都是自己来写,不管是图片缓存还是其他从网络获取的数据,有了HttpResponseCache,它帮助我们可以很好的解决cache这个问题。这个类是在Android 4.0加入进来的。
HttpResponseCache的好处:
1.明显一点节约电,减少了网络请求。
2.开发者不用自己在去写cache机制了。
3.最根本的一点就是,如果开发者在开发中不是使用的HttpClient, HttpDefaultClient..., 而是用 HttpURLConnection或者HttpsURLConnection的话, 你根本不用改本來的 Code。
HttpResponseCache的用法
一般在Application的onCreate方法中调用HttpResponseCache的install方法进行初始化,代码如下:
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);
}
然后就可以使用HttpURLConnection或HttpsURLConnection进行网络请求了,请求到的结果会缓存到HttpResponseCache.install方法设置的缓存目录下,缓存时间可以由服务端进行控制,
服务端可以在响应头里面添加Cache-control,比如response.addHeader("Cache-control", "max-age=5"),表示缓存时间为5秒。
当不需要缓存时,可以调用HttpResponseCache的close方法或者delete方法,close方法会卸载缓存并且释放资源,但是不会删除缓存文件,delete方法会卸载缓存同时删除缓存文件。