[英]Volley request only executing once in android Java
我正在这样打排球。 我想执行一次发布命令,一次或多次,这取决于我的arraylist的大小。 但是执行此代码只会执行一次volley命令。
这是我尝试过的。
for(int i = 0; i<listofobjects.size(); i++){
makeRequest(listobjects.get(i));
}
public void makeRequest(Customobject obj){
RequestQueue requestQueue = Volley.newRequestQueue(this);
String modifiedUrl = MainActivity.URL + "XXXXX";
StringRequest stringRequest = new StringRequest(Request.Method.POST, modifiedUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.v("Response", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.v("Error", error.toString());
}
})};
requestQueue.add(stringRequest);
}
此代码仅执行一次截击请求。 我如何使其执行取决于我在对象列表中拥有的项目数。
尝试这个:
public void makeRequest(Customobject obj){
boolean status = true;
int i=0;
do
{
RequestQueue requestQueue = Volley.newRequestQueue(this);
String modifiedUrl = MainActivity.URL + "XXXXX";
StringRequest stringRequest = new StringRequest(Request.Method.POST, modifiedUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
status = true;
Log.v("Response", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
status = true;
Log.v("Error", error.toString());
}
})};
if(status)
{
requestQueue.add(stringRequest);
i++;
status =false;
}
}while(i<listofobjects.size());
}
// Gloabal variable
int i = 0;
调用此功能
makeRequest(listobjects.get(i));
makeRequest方法将被递归调用
public void makeRequest(Customobject obj){
RequestQueue requestQueue = Volley.newRequestQueue(this);
String modifiedUrl = MainActivity.URL + "XXXXX";
StringRequest stringRequest = new StringRequest(Request.Method.POST, modifiedUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.v("Response", response);
i++;
if(i < listobjects.size()){
// make a recursive function
makeRequest(listobjects.get(i));
} else {
// Completed
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.v("Error", error.toString());
}
})};
requestQueue.add(stringRequest);
}
我认为这种方法可以解决您的问题。
int i = 0;
makeRequest(listObjects.get(i));
public void makeRequest(Customobject obj){
RequestQueue requestQueue = Volley.newRequestQueue(this);
String modifiedUrl = MainActivity.URL + "XXXXX";
StringRequest stringRequest = new StringRequest(Request.Method.POST, modifiedUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.v("Response", response);
if(reposnse==success && i<listobjects.size){
i++;
makeRequest(listObjects.get(i));
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.v("Error", error.toString());
}
})};
requestQueue.add(stringRequest);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.