Volley

 Volley的介紹:緩存

Volley 是 Google 推出的 Android 異步網絡請求框架和圖片加載框架。在 Google I/O 2013 大會上發佈。服務器

Volley從服務器端請求字符串數據,圖片數據,和JSON格式數據。Volley能夠寫出標準化的模板代碼,並讓咱們更加關注於咱們的業務邏輯,這對於咱們的App來講是很是重要的。網絡

Volley 的特色:併發

Volley 的主要特色框架

  •  自動的調度網絡請求
  •  多併發的網絡請求
  •   能夠緩存http請求
  •  支持請求的優先級
  •  支持取消請求的API,能夠取消單個請求,能夠設置取消請求的範圍域。
  •  代碼標準化,使開發者更容易專一於咱們的業務的邏輯處理
  •  更容易給UI填充來自網絡請求的數據
  •  Volley能夠是做爲調試和跟蹤的工具
  • 擴展性強。Volley 中大可能是基於接口的設計,可配置性強。
  • 必定程度符合 Http 規範,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的處理,請求頭的處理,緩存機制的支持等。並支持重試及優先級定義。
  • 默認 Android2.3 及以上基於 HttpURLConnection,2.3 如下基於 HttpClient 實現
  • 提供簡便的圖片加載工具。

Volley的優缺點:異步

特別適合數據量小,通訊頻繁的網絡操做。不適合大的文件流操做,例如上傳和下載。由於Volley會把全部的服務器端返回的數據在解析期間緩存進內存。大量的下載操做能夠考慮用DownLoaderManager和異步加載來實現。工具

Volley的工做原理

      爲了發送一個請求,你能夠經過構造方法new出來一個Request,而後調用add()把請求添加進RequestQueue中,當調用add方法時,Volley會運行一個緩存處理線程和一個網絡調度線程池.若是請求被緩存線程已經緩存的話,請求將不會放進請求隊列,也就是說不會發出Http請求。而會直接複用請求,並將數據返回到主線程。若是緩存線程中沒有緩存到請求的話,請求將會放進請求隊列,網絡請求成功後, 請求將會被緩存進cache,接着網絡調度線程將處理該請求,並解析數據。
spa

如何取消請求

   Volley經過調用cancel()方法取消一個請求,並保證請求不會在Response中回調處理,你能夠在activity中的onStop中取消全部你想取消的請求,最簡單的方法就是給全部想取消的請求調用setTag(TAG)設置標記,而後放進請求隊列,在Activity的onStop方法中調用cancelAll(TAG)方法取消請求。線程

相關文章
相關標籤/搜索