我有一個for循環,這是創建不同的網址,然後我使用add功能推Volley RequestQueue中的網址。 我有一個問題,響應列表程序會按照添加到RequestQueue的請求的順序響應,還是根據請求的服務器響應進行隨機響應? 我正在使用VolleySingleton方法。排球請求隊列中的響應順序是什麼?
回答
號。的Android凌空過程在異步請求隊列中的每個請求..
參考架構圖像
https://packetzoom.com/blog/images/volley_arch.png
在請求隊列中的每個請求將被網絡threads.and被處理也可以限制網絡調度員線程數檢查http://stackoverflow.com/questions/22744148/what-is-the-maximum-size-of-the-volley-library-request-queue
Volley RequestQueue類管理異步請求隊列。
這意味着Volley在FIFO(先入先出)模型上發送請求,但由於響應可能會很長時間纔會返回,因此它會以特定順序處理響應。 如果您希望在第二個請求中使用第一個請求的結果,則不能使用它。
但是,可以明顯地使用RequestFuture類使用排在synchonous型號:Can I do a synchronous request with volley?
Pierre, 是的,我希望我的第一個請求的結果可以在第二個請求中使用。然後我要在第三個請求中使用第二個請求的結果。 請問,我如何鏈接這樣的排球請求? – JDOaktown
默認情況下,凌空RequestQueue
將使用4 concurrent Threads處理Requests
加入Queue
。這可以通過擴展RequestQueue
類並將想要的線程池大小作爲第三個參數傳遞給super
構造器來更改。
1傳遞給構造將導致在時間:-)
有關使用4個併發線程的聲明的任何引用? – Talha
當然:-) http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r1/com/android/volley/RequestQueue.java#73 – Kelevandos
你可能會希望將這行'DEFAULT_NETWORK_THREAD_POOL_SIZE = 4'作爲參考添加到您的答案中,所以它會更真實。 +1爲官方參考鏈接。 – Talha
的RequestQueue
處理一個請求假定默認行爲是在單獨的併發線程發送多個請求,則響應的順序就成爲取決於每個單獨請求的總響應時間。
至於識別響應(數據本身除外),您似乎應該能夠使用唯一請求標識符(原始URL或int)實例化Response.Listener實現,以便在調用響應處理程序時它能夠區分原始請求。
public class JSONProcessor implements Response.Listener<JSONObject> {
private String url;
private int reqCode;
public JSONProcessor (String reqUrl) {
this.url = reqUrl
}
public JSONProcessor (int reqCode) {
this.reqCode = reqCode;
}
public void onResponse(JSONObject response) {
// use this.url or this.reqCode to determine original request
// process response
}
}
或者,對您希望處理的每個端點使用不同的Response.Listener實現。
一般來說,在我看來,如果可能的話最好是完全數據驅動的。
- 1. 排球庫請求隊列的最大尺寸是什麼
- 2. 排球誤差新請求隊列
- 3. 如何檢查排球請求隊列是否爲空?請求完成?
- 4. 什麼是請求 - 響應對?
- 5. 排隊請求隊列超時
- 6. Ember POST請求響應JAX-RS中的XML球衣響應
- 7. ajax請求與PHP響應的順序,而不是數組
- 8. 排球請求回調傳遞錯誤的回調響應
- 9. 的Android,排球請求,響應阻塞主線程
- 10. 創建排球的常用方法請求和響應
- 11. CSS響應式設計順序排列
- 12. c排隊,排序順序
- 13. ASP.NET請求排隊,我可以確定這些請求是什麼?
- 14. document.cookie的排序順序是什麼?
- 15. iPhone客戶端 - 服務器應用程序中的請求和響應隊列
- 16. 在Laravel排隊下一個響應Cookie的場景是什麼
- 17. 在RabbitMQ中帶有工作隊列的請求響應模式
- 18. 全球請求/響應攔截
- 19. 尋找排球請求響應時間android
- 20. Android排球緩存 - 通過URL和請求獲取響應
- 21. Android工作室註冊按鈕沒有響應排球請求
- 22. Android排球 - 無法做POST與JSON請求,得到空響應
- 23. 什麼是遊戲中的請求響應循環
- 24. 排球JSON響應
- 25. 與JavaScript有關的HTTP請求的順序是什麼?
- 26. AWS SQS異步排隊模式(請求/響應)
- 27. zeromq請求/響應示例顯示在Python中使用隊列?
- 28. 異步HTTP請求,排隊請求
- 29. 排球重試請求
- 30. 排球請求太慢
所以你的意思是,它對於每一個請求都有不同的線程? – Vishesh
@VISHESH編輯答案 –
所以我怎麼能區分的答覆,我已經設置標籤的請求,但我無法找出如何確定答覆。 (我們可以取消基於標籤的請求,但有沒有辦法根據接收到的響應來識別請求?) – Vishesh