版权声明:本文为博主原创文章,未经博主允许不得转载。
Volley是google推出的一个用于处理网络的框架。
1、volley的简单功能:
简单来说,它提供了如下的便利功能:
•JSON,图像等的异步下载;
•网络请求的排序(scheduling)
•网络请求的优先级处理
•缓存
•多级别取消请求
•和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
2、从git库先克隆一个下来,引入自己的工程
- git clone https://android.googlesource.com/platform/frameworks/volley
3、简单使用:volley有StringRequest、JsonRequest、JsonObjectRequest、JsonArrayRequest、ImageRequest等请求,其基本使用都差不多。
demo:
- //第一步:初始化volley,一般放在onCreate方法里。
- RequestQueue rQueue =Volley.newRequestQueue(this);// 初始化请求队列
- //第二步:向请求队列中添加任务
- mQueue.add(new JsonObjectRequest(
- Method.GET,//定义方法的类型,volley目前支持
- GET,POST,PUT,DELETE,HEAD,OPTIONS,TRACE,PATCH等类型
- url, //网络请求的地址
- null, //JSONObject
- newListener() { //当有响应时回调此函数做相应处理
- @Override
- public void onResponse(JSONObject response) {
- Log.d(TAG, "response : " +response.toString());
- }
- },
- null)//错误监听,请求失败时做相应处理);
其他几种请求于此类似,但是当有图片请求时建议使用ImageLoader下载图片
- //第一步:初始化volley,一般放在onCreate方法里。
- RequestQueue rQueue =Volley.newRequestQueue(this);// 初始化请求队列
- ImageCache imageCache = new ImageCache(){//定义缓存
- @Override
- public void putBitmap(String key, Bitmap value) {
- mImageCache.put(key, value);
- }
- @Override
- public Bitmap getBitmap(String key) {
- return mImageCache.get(key);
- }
- };
- ImageLoader iLoader = new ImageLoader(rQueue, imageCache);
- //第二步:获取图片显示
- iLoader.get(imgurl,//图片在网络中的地址
- ImageLoader.getImageListener(
- iv,//ImageView实例
- android.R.drawable.ic_menu_rotate,//默认显示图片
- android.R.drawable.ic_delete)//请求失败时显示的图片
- );