适合数据量小,交互频繁的网络操作情况下。
不适合大数据量的网络操作,比如下载文件,或者大的视频等。
功能有:
1.JSON,图像等的异步下载
2.网络请求的排序
3.网络请求的优先级处理
4.缓存
5.多级别取消请求
6.和Activity生命周期联动
RequestQuery请求消息队列,它可以缓存所有的http请求。他是并发处理的
public class MainActivity extends Activity {
RequestQueue queue=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//創建一個請求隊列
queue= Volley.newRequestQueue(getApplication());
}
//发送一个字符串的请求
private void sendStringRequest(){//按钮的监听事件
String url="http://www.baidu.com";
//创建一个字符串请求(请求方式,url,正确的回调接口,错误的回调接口)
StringRequest request=new StringRequest(Request.Method.GET, url, new Listener<String>() {
@Override
public void onResponse(String arg0) {
// 正确的时候
System.out.println(arg0);
}
}, new ErrorListener(){
@Override
public void onErrorResponse(VolleyError arg0) {
// 错误的时候
System.out.println(arg0);
}
}
);
queue.add(request);//把消息加到队列里
}
//发送post请求
private void sendPostRequest(){
String url="***";//地址
StringRequest request=new StringRequest(Request.Method.POST, url, new Listener<String>() {
@Override
public void onResponse(String arg0) {
}
},new ErrorListener() {
@Override
public void onErrorResponse(VolleyError arg0) {
// TODO Auto-generated method stub
}
}){@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params=new HashMap<String, String>();
params.put("name", "word");
return params;
}};
queue.add(request);//把消息加到队列里
}
}