前一段时间看到别人代码中有configCurrentHttpCacheExpiry的方法,不会使用,特地查了一下。
比如一个ListView,需要访问网络排序数据,如果不停的点上下上下上下排序,肯定不需要不停的访问网络及更新ListView,只需要保留最后一次访问网络,这时候可以设置一下这些参数,具体见下例子。
HttpUtils httpUtils = null;
HttpHandler<String> handler = null;
private void onItem(final int arg2){
//如果之前的线程没有完成
if(handler!=null && handler.getState()!=State.FAILURE && handler.getState()!=State.SUCCESS && handler.getState()!=State.CANCELLED){
//关闭handler后 onStart()和onLoading()还是会执行
handler.cancel();
}
httpUtils = new HttpUtils();
//设置当前请求的缓存时间
httpUtils.configCurrentHttpCacheExpiry(0*1000);
//设置默认请求的缓存时间
httpUtils.configDefaultHttpCacheExpiry(0);
//设置线程数
httpUtils.configRequestThreadPoolSize(10);
httpUtils.configResponseTextCharset("utf-8");
handler = httpUtils.send(HttpMethod.GET,
"http://www.devstore.cn/code/info/76.html",
new RequestCallBack<String>(){
@Override
public void onLoading(long total, long current, boolean isUploading) {
Log.i("onLoading", arg2+"次");
}
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
//获取数据后,更新listView
Log.i("onSuccess", arg2+"次");
}
@Override
public void onStart() {
Log.i("onStart", arg2+"次");
}
@Override
public void onFailure(HttpException error, String msg) {
Log.i("onFailure", arg2+"次");
}
});
}