我必须用排球打两个电话。我的问题是,我需要完成第一个电话,然后是第二个电话。这些调用位于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数组,因此优先级可能不工作 –