gpt4 book ai didi

java - 在 CancelAll 之后删除队列中剩余的请求

转载 作者:行者123 更新时间:2023-11-29 23:49:46 24 4
gpt4 key购买 nike

在下面的代码中,在 CancelAll 和 Stop 之后,之后添加到队列中的请求将在启动命令之后立即执行。

如何删除插入队列中的最后一个/多个请求?

    final  RequestQueue queue = Volley.newRequestQueue(this);
String url ="";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {

Log.d("response", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("VolleyError", error.toString());
}
});

// Add the request to the RequestQueue.

stringRequest.setTag("a");
queue.cancelAll("a");
queue.stop();
queue.add(stringRequest);
queue.start();

最佳答案

因为你的 queue 引用是一个局部变量所以你需要把它移到外面并且因为你在 Activity 中使用它所以声明它就像

private RequestQueue queue;

..oncreate(..){
//... code
queue = Volley.newRequestQueue(this);
}

并创建一个单独的方法来取消所有请求

void cancelAllQueuedRequests(){
queue.cancelAll("a");
queue.stop();
queue.start();
}

在任何地方调用 cancelAllQueuedRequests 并像这样添加请求

String url ="some url";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {

Log.d("response", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("VolleyError", error.toString());
cancelAllQueuedRequests();
}
});

// Add the request to the RequestQueue.

stringRequest.setTag("a");
queue.add(stringRequest);
//queue.start(); no need

关于java - 在 CancelAll 之后删除队列中剩余的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com