Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android Java中,截击请求只执行一次_Java_Android_Android Volley - Fatal编程技术网

在android Java中,截击请求只执行一次

在android Java中,截击请求只执行一次,java,android,android-volley,Java,Android,Android Volley,我提出这样的截击要求。我想根据arraylist的大小执行一次或多次post命令。但是执行此代码只执行一次截击命令 这是我试过的 for(int i = 0; i<listofobjects.size(); i++){ makeRequest(listobjects.get(i)); } public void makeRequest(Customobject obj){ RequestQueue requestQueue = Volley.newRequestQueue(

我提出这样的截击要求。我想根据arraylist的大小执行一次或多次post命令。但是执行此代码只执行一次截击命令

这是我试过的

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);

}
for(inti=0;i试试这个:

    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());

    }
public void生成请求(Customobject obj){
布尔状态=真;
int i=0;
做
{
RequestQueue RequestQueue=Volley.newRequestQueue(this);
字符串modifiedUrl=MainActivity.URL+“XXXXX”;
StringRequest StringRequest=new StringRequest(Request.Method.POST、modifiedUrl、new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
状态=真;
Log.v(“响应”,响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
状态=真;
Log.v(“Error”,Error.toString());
}
})};
如果(状态)
{
添加(stringRequest);
i++;
状态=假;
}
}而(i试试这个:

    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());

    }
public void生成请求(Customobject obj){
布尔状态=真;
int i=0;
做
{
RequestQueue RequestQueue=Volley.newRequestQueue(this);
字符串modifiedUrl=MainActivity.URL+“XXXXX”;
StringRequest StringRequest=new StringRequest(Request.Method.POST、modifiedUrl、new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
状态=真;
Log.v(“响应”,响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
状态=真;
Log.v(“Error”,Error.toString());
}
})};
如果(状态)
{
添加(stringRequest);
i++;
状态=假;
}
}而
调用这个函数

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);

}
public void生成请求(Customobject obj){
RequestQueue RequestQueue=Volley.newRequestQueue(this);
字符串modifiedUrl=MainActivity.URL+“XXXXX”;
StringRequest StringRequest=new StringRequest(Request.Method.POST、modifiedUrl、new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
Log.v(“响应”,响应);
i++;
if(i
调用这个函数

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);

}
public void生成请求(Customobject obj){
RequestQueue RequestQueue=Volley.newRequestQueue(this);
字符串modifiedUrl=MainActivity.URL+“XXXXX”;
StringRequest StringRequest=new StringRequest(Request.Method.POST、modifiedUrl、new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
Log.v(“响应”,响应);
i++;
if(i
我想这个方法会解决你的问题

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);

}
inti=0;
makeRequest(listObjects.get(i));
公共作废生成请求(Customobject obj){
RequestQueue RequestQueue=Volley.newRequestQueue(this);
字符串modifiedUrl=MainActivity.URL+“XXXXX”;
StringRequest StringRequest=new StringRequest(Request.Method.POST、modifiedUrl、new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
Log.v(“响应”,响应);

如果(resosnse==success&&i我想这个方法会解决你的问题

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);

}
inti=0;
makeRequest(listObjects.get(i));
公共作废生成请求(Customobject obj){
RequestQueue RequestQueue=Volley.newRequestQueue(this);
字符串modifiedUrl=MainActivity.URL+“XXXXX”;
StringRequest StringRequest=new StringRequest(Request.Method.POST、modifiedUrl、new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
Log.v(“响应”,响应);

如果(resosnse==success&&iYou最终将在无限循环中运行。请记住,volley是异步的,while循环不会等待迭代的响应。您的新代码更改与问题中的代码更改相同。您只是对循环到while循环进行了重构。我没有看到任何增强,它仍然是一个无限运行的循环,带有一个布尔值使t他调用。检查其他解决方案,它们不使用无限循环,而是对响应进行处理。您最终将在无限循环中运行。请记住,volley是异步的,while循环不会等待响应迭代。您的新代码更改与问题中所问的相同。您只是对循环到while循环进行了重构。我没有看到任何增强功能nt,它仍然是一个带有布尔值的无限运行循环来进行调用。检查其他解决方案,它们不使用无限循环,而是处理响应。可能您的截击单例取消了对以前相同URL的请求。您需要进行更改,以便将响应序列化。可能您的截击单例取消了对相同URL的请求您需要进行更改以便序列化响应。