Volley框架
Posted 星空守候
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Volley框架相关的知识,希望对你有一定的参考价值。
Volley框架
volley是谷歌官方在2013年推出的android平台上的网络通信库
特点
- 网络通信更快,更简单,开发效率高,稳定性高。
- 对get和post网络请求以及网络图片高效的
异步处理
请求。 - 可以对网络请求进行优先级
排序处理
。 - 网络请求的
缓存
。 - 多级别取消请求。
- 和Activity生命周期的联动。
缺点
不适合数据的上传与下载
Get和Post请求接口的使用
请求对象
- StringRequest 返回结果类型不确定(它包含后面两种)
StringRequest request =newStringRequest(Request.Method.GET, REQUEST_URL,newResponse.Listener<String>(){
@Override
publicvoid onResponse(String s){//数据请求成功
result.setText("请求成功:"+ s);
}
},newResponse.ErrorListener(){
@Override
publicvoid onErrorResponse(VolleyError volleyError){//数据请求失败
result.setText("请求失败:"+ volleyError.getMessage());
}
});
- JsonObjectRequest
JSONObject jsonRequest =newJSONObject();//Get请求传递参数jsonRequest可以为空null
JsonObjectRequest request =newJsonObjectRequest(Request.Method.GET, REQUEST_URL,null,newResponse.Listener<JSONObject>(){
@Override
publicvoid onResponse(JSONObject jsonObject){
result.setText("请求成功:"+ jsonObject);
}
},newResponse.ErrorListener(){
@Override
publicvoid onErrorResponse(VolleyError volleyError){
result.setText("请求失败:"+ volleyError.getMessage());
}
});
- JsonArrayRequest
JsonArrayRequest request =newJsonArrayRequest(REQUEST_URL,newResponse.Listener<JSONArray>(){
@Override
publicvoid onResponse(JSONArray jsonArray){
result.setText("请求成功:"+ jsonArray);
}
},newResponse.ErrorListener(){
@Override
publicvoid onErrorResponse(VolleyError volleyError){
result.setText("请求失败:"+ volleyError.getMessage());
}
});
网络请求队列建立和取消队列建立
- 建立一个全局的请求队列。
//创建请求队列
privatestaticRequestQueue queues;
//初始化请求队列
queues =Volley.newRequestQueue(getApplicationContext());
- 建立一个请求并加入队列中。
MyApplication.getQueues().add(request);
- 取消队列
MyApplication.getQueues().cancelAll(tag);
与Activity生命周期的联动
- 可以在Activity销毁的同时关闭请求。
- 设置Tag标签,在onStop()里执行取消请求。
@Override
protectedvoid onStop(){
super.onStop();
//结束请求
MyApplication.getQueues().cancelAll("StringRequest_get");
}