Volley框架

Posted 星空守候

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Volley框架相关的知识,希望对你有一定的参考价值。

Volley框架

volley是谷歌官方在2013年推出的android平台上的网络通信库

特点

  • 网络通信更快,更简单,开发效率高,稳定性高。
  • 对get和post网络请求以及网络图片高效的异步处理请求。
  • 可以对网络请求进行优先级排序处理
  • 网络请求的缓存
  • 多级别取消请求。
  • 和Activity生命周期的联动。

缺点
不适合数据的上传与下载


Get和Post请求接口的使用
请求对象

  • StringRequest 返回结果类型不确定(它包含后面两种)
  1. StringRequest request =newStringRequest(Request.Method.GET, REQUEST_URL,newResponse.Listener<String>(){
  2. @Override
  3. publicvoid onResponse(String s){//数据请求成功
  4. result.setText("请求成功:"+ s);
  5. }
  6. },newResponse.ErrorListener(){
  7. @Override
  8. publicvoid onErrorResponse(VolleyError volleyError){//数据请求失败
  9. result.setText("请求失败:"+ volleyError.getMessage());
  10. }
  11. });
  • JsonObjectRequest
  1. JSONObject jsonRequest =newJSONObject();//Get请求传递参数jsonRequest可以为空null
  2. JsonObjectRequest request =newJsonObjectRequest(Request.Method.GET, REQUEST_URL,null,newResponse.Listener<JSONObject>(){
  3. @Override
  4. publicvoid onResponse(JSONObject jsonObject){
  5. result.setText("请求成功:"+ jsonObject);
  6. }
  7. },newResponse.ErrorListener(){
  8. @Override
  9. publicvoid onErrorResponse(VolleyError volleyError){
  10. result.setText("请求失败:"+ volleyError.getMessage());
  11. }
  12. });
  • JsonArrayRequest
  1. JsonArrayRequest request =newJsonArrayRequest(REQUEST_URL,newResponse.Listener<JSONArray>(){
  2. @Override
  3. publicvoid onResponse(JSONArray jsonArray){
  4. result.setText("请求成功:"+ jsonArray);
  5. }
  6. },newResponse.ErrorListener(){
  7. @Override
  8. publicvoid onErrorResponse(VolleyError volleyError){
  9. result.setText("请求失败:"+ volleyError.getMessage());
  10. }
  11. });

网络请求队列建立和取消队列建立

  • 建立一个全局的请求队列。
  1. //创建请求队列
  2. privatestaticRequestQueue queues;
  3. //初始化请求队列
  4. queues =Volley.newRequestQueue(getApplicationContext());
  • 建立一个请求并加入队列中。
  1. MyApplication.getQueues().add(request);
  • 取消队列
  1. MyApplication.getQueues().cancelAll(tag);

与Activity生命周期的联动

  • 可以在Activity销毁的同时关闭请求。
  • 设置Tag标签,在onStop()里执行取消请求。
  1. @Override
  2. protectedvoid onStop(){
  3. super.onStop();
  4. //结束请求
  5. MyApplication.getQueues().cancelAll("StringRequest_get");
  6. }

Android 选项卡式活动通过 volley 添加新片段

Volley框架源码分析

无法通过使用 Volley 库中的 Intent 从片段中移动下一个 Activity

源码解析Volley框架

源码解析Volley框架

Volley框架的使用