您不需要在異步任務上運行Volly請求。
爲什麼:
他們管理上獨立的線程所有網絡相關的任務。 如果你仔細觀察圖書館項目,他們沒有看到異步任務。但他們智能地處理所有與網絡有關的任務。
檢查RequestQueue.java類Volly的主要包
我在這裏粘貼Java文檔。
/**
* A request dispatch queue with a thread pool of dispatchers.
*
* Calling {@link #add(Request)} will enqueue the given Request for dispatch,
* resolving from either cache or network on a worker thread, and then delivering
* a parsed response on the main thread.
*/
被修改:
成型請求:
隨着排球,網絡通信由請求隊列進行管理。使用RequestQueue及其所有工具(尤其是緩存)的最佳方法是通過實例化一次並將其作爲單例保存。此時,您可以添加或取消請求,停止或啓動請求,並訪問響應緩存。
RequestQueue queue =Volley.newRequestQueue(this);
一旦請求隊列已經被實例化的請求必須形成。這可以利用Volley庫中包含的幾種不同的「開箱即用」請求類或將Volley的請求類擴展到您自己的自定義請求中。已經包含在Volley中的請求類是String請求,JSON請求和Image Request。包含在Volley庫中的大多數請求類都使用與以下類似的構造函數。
參數傳遞到構造函數:
RequestMethod(GET,POST,刪除,ECT) * JSONObject的,將您的要求發佈 * - 一個可選的對象 ResponseListener - 在請求完成後您的數據將發送到哪裏 ErrorListener - 當您的請求出現問題時會告訴您什麼。
JsonObjectRequest request = JsonObjectRequest(Requestmethod, url, null, new ResponseListener(), new ErrorListener());
Listners接收響應:
成功響應監聽
private class ResponseListener implements Response.Listener{
@Override
public void onResponse(JSONObject response){
}
}
錯誤響應監聽
private class ErrorListener implements Response.ErrorListener{
@Override
public void onErrorResponse(VolleyError error){
}
}
Finaly將您的請求添加到請求隊列中,剩下的永不停息的任務將爲您處理。
撥打電話:
現在,我們已經取得了我們的請求和響應類,我們就可以添加請求隊列和檢索數據。爲此,我們只需將請求添加到隊列中。
queue.add(request);
響應或錯誤將被傳遞到我們在請求中定義的響應/錯誤類。您可以一次向隊列中添加儘可能多的請求,並將響應發送到各自的響應/錯誤類別
來源
2013-12-19 06:48:45
Gru
它已經發生在後臺'異步'。你**不需要'AsyncTask' –