欢迎使用CSDN-markdown编辑器

来源:互联网 发布:wing it jordan 编辑:程序博客网 时间:2024/06/03 13:53

一、Volley提供的功能
Volley特别适合数据量不大但是通信频繁的场景。
Volley应该是简化了网络通信的一些开发,特别是针对如下两种情况:
JSON对象
图片加载
简单来说,它提供了如下的便利功能:
JSON,图像等的异步下载;
网络请求的排序(scheduling)
网络请求的优先级处理
缓存
多级别取消请求
和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
二、Volley的局限性

Volley不适用大数据(large payloads ),流媒体,这些case,还需要使用原始的方法,比如Download Manager等。

从volley自身的结构来讲,他有两个队列来处理request,首先 一个本地存储队列来获取最新的请求,当本地存储队列发现有满足这个请求的数据时就返回相应数据,如果没有,则丢到另一个实现网络请求的队列中去,volley开启了4个线程来读取这个队列,保证队列中网络请求停留极短的时间。每个读取线程独自接着实现请求和数据分发

Volley:
文本:StringRequest JsonObjectRequest JsonArrayRequest
图片:ImageRequest ImageLoader NetWorkImageView

Volley使用步骤:

1.新建一个请求队列 RequestQueue
2.实例化请求队列
3.新建一个StringRequest 请求对象,并实例化
4.将请求对象添加到请求队列中

//声明请求队列
RequestQueue requestQueue;
// 实例化请求队列
requestQueue = Volley.newRequestQueue(this);// 单例模式
StringRequest
// 实例化一个StringRequest对象
StringRequest stringRequest = new StringRequest(url, //请求的网址
new Listener() { },//网络访问成功,回调的接口
new ErrorListener() {});//访问网络失败,回调的接口

// 实例化一个StringRequest对象
StringRequest stringRequest1 = new StringRequest(
Method.POST, //请求方式
url, //请求网址
new Listener() { //网络访问成功,回调的接口
@Override
public void onResponse(String arg0) {
// TODO Auto-generated method stub
} },
new ErrorListener() { //访问网络失败,回调的接口
@Override
public void onErrorResponse(VolleyError arg0) {
}
}) { //重写StringRequest中的该方法,用于设置Post请求的参数
@Override
protected Map

0 0