2015-02-10 17 views
1

我想發送兩個不同的請求,並使用Volley庫處理一個Activity中的兩個不同的響應。 我的活動實現onResponseListener,所以我只有一個onResponse方法,並且這兩個響應都在這裏處理。因爲它們在結構上完全相同,我不能說出哪個是哪個。排球 - 在同一活動多個請求android

我該如何判斷哪些請求已收到回覆,以便我能以不同方式處理它們?有沒有辦法「標記」請求或類似的東西?

我可以設置某種檢查變量,例如,布爾firstRequestIsSent當我發送請求,然後檢查它的onResponse方法,但它是一個非常醜陋的解決方案。

非常感謝

+1

只是在請求類的構造函數中實例化回調,或者你可以編寫圍繞凌空的包裝:)但僅供參考,有一些其他api庫以你想要的集中方式工作。你必須添加和編號的電話..和谷歌可能想到這一點,有一個原因,爲什麼是凌空不是這樣的(對壞英文不是我的本地的sry) – cesztoszule 2015-02-10 14:14:38

+0

http://stackoverflow.com/questions/17962904/ volley-library-for-android-parse-xml-response – 2015-02-13 09:09:26

回答

3

無需實現onResponse作爲類的一部分,你可以實例與請求新Response.Listener。這樣您將爲每個請求都有一個單獨的偵聽器。

StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
     new Response.Listener() { 
      @Override 
      public void onResponse(String response) { 
       // individual response here 
      } 
     }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      // error here 
     } 
    }); 
+0

謝謝,這解決了它,但是我已經爲處理很多東西的請求製作了一個泛型類,所以我很想嘗試「標記」請求不知怎的,所以我可以保持這種實現。你有任何想法如何識別onResponse方法中的請求? – 2015-02-10 14:17:39

+1

請求標記僅用於取消實際的請求。唯一確定調用onResponse請求的方法是檢查返回的數據並將其與呼叫匹配。 – Shooky 2015-02-10 14:48:54