我必須用排球打兩個電話。我的問題是,我需要完成第一個電話,然後是第二個電話。這些調用位於for循環中。所以我把第一個電話和第二個Priority.LOW
。但有時候第二個調用是在第一個調用之前完成的,而我沒有從第一個調用中需要的數據。我錯過了什麼?排球優先權不能正常工作
for (int i = 0; i < SiteData.getSites().size(); i++) {
firstCall();
secondCall();
}
的firstCall
方法
private void firstCall(){
JsonObjectRequest siteDataRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// do something with json
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(membership_id_tag, error.getMessage());
}
})
{
@Override
public Priority getPriority() {
return Priority.IMMEDIATE;
}
};
AppController.getInstance().addToRequestQueue(siteDataRequest, membership_id_tag);
}
的secondCall
方法
private void secondCall(){
JsonArrayRequest pagesRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
// do something with json
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(membership_page_tag, error.getMessage());
}
})
{
@Override
public Priority getPriority() {
return Priority.LOW;
}
};
AppController.getInstance().addToRequestQueue(pagesRequest, membership_page_tag);
}
我必須做出一個循環,並在其他第二的第一個電話?
在我看到的第一個 –
的迴應中做出第二個電話......我只是想避免這種情況,因爲它會太複雜,但它是唯一的方法 –
我不確定,但我有一個預感它可能因爲你正在使用2個不同的請求隊列,json obj和json數組,因此優先級可能不工作 –