Android Volley 框架的使用(一)


為什么要使用Volley框架

 

開發android應用很多時候都要涉及網絡操作,Android SDK中提供了HttpClient 和 HttpUrlConnection兩種方式用來處理網絡操作,但當應用比較復雜的時候需要我們編寫大量的代碼處理很多東西:圖像緩存,請求的調度等等;

而Volley框架就是為解決這些而生的,它與2013年Google I/O大會上被提出:使得Android應用網絡操作更方便更快捷;抽象了底層Http Client等實現的細節,讓開發者更專注與產生RESTful Request。另外,Volley在不同的線程上異步執行所有請求而避免了阻塞主線程。

這里寫圖片描述

Volley到底有哪些特點呢?

  1. 自動調度網絡請求
  2. 多個並發的網絡連接
  3. 通過使用標准的HTTP緩存機制保持磁盤和內存響應的一致
  4. 支持請求優先級
  5. 支持取消請求的強大API,可以取消單個請求或多個
  6. 易於定制
  7. 健壯性:便於正確的更新UI和獲取數據
  8. 包含調試和追蹤工具

 

如何使用Volley

git clone https://android.googlesource.com/platform/frameworks/volley 或者 https://github.com/mcxiaoke/android-volley 

或者到Maven下載http://central.maven.org/maven2/com/mcxiaoke/volley/library/1.0.19/library-1.0.19.jar

 

Volley中的RequestQueue 和 Request

  • RequestQueue 用來執行請求的請求隊列
  • Request 用來構造一個請求對象
  • Request對象主要有以下幾種類型: 
    1. StringRequest 響應的主體為字符串
    2. JsonArrayRequest 發送和接收JSON數組
    3. JsonObjectRequest 發送和接收JSON對象
    4. ImageRequest 發送和接收Image

Volley的基本使用

首先我們需要創建一個RequestQueue requestQueue,然后構建一個自己所需要的XXRequest req,之后通過requestQueue.add(req);將請求添加至請求隊列;

 

構建一個RequestQueue

RequestQueue requestQueue=Volley.newRequestQueue(this);//這里的this指的是Context

創建一個Request(以JsonObjectRequest為例)

private final String url="http:/xxxxx"//所需url
    JsonObjectRequest req=new JsonObjectRequest(url,null,new Response.Listener<JsonObject>(){
        @Override
        public void onResponse(JsonObject response){
            //添加自己的響應邏輯,
        }
    },
    new ResponseError.Listener(){
        @Override
        public void onResponseError(VollerError error){
            //錯誤處理
            L.d("Error Message:","Error is"+error);
        }
    });

將req添加到requestQueue

在構建JsonObjectRequest對象時,需要四個參數,其中第二個參數代表http方法,第三個和第四個分別是響應監聽和響應錯誤監聽,分別需要覆寫onResponse()onResponseError()方法;RequestQueue將會執行請求,並將響應回調onResponse()方法,所以需要在onResponse()方法中實現自己的業務邏輯

 

 

參考資料 :http://blog.csdn.net/qwm8777411/article/details/45770979

http://www.kwstu.com/ArticleView/kwstu_20144118313429


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM