【发布时间】:2015-09-26 13:27:56
【问题描述】:
我在 Android 中使用Volley 来发出请求,包括获取相对大量的数据。我想设置 5 秒的计时器,如果在它之后请求没有返回 - 这可能意味着连接速度很慢,因此我想取消请求。到目前为止我做了什么:
Timer timer = new Timer();
VioozerVolleyRequestFactory mFactory = new VioozerVolleyRequestFactory(this);
RequestQueue mQueue = VioozerVolleySingleton.getInstance(this).getRequestQueue();
timer.schedule(new TimerTask() {
@Override
public void run() {
mQueue.cancelAll("MY_TAG");
}
}, 5000};
Request<String> request = mFactory.createRequest(RequestType,
new Listener<String>() {
@Override
public void onResponse(String response) {
timer.cancel();
//...
}
},
new ErrorListener<String>() {
@Override
public void onErrorResponse(String response) {
timer.cancel();
//...
}
}, extra);
request.setTag("MY_TAG");
mQueue.add(request);
我的问题:似乎请求没有取消。该请求已执行,因此内置方法 cancelALL(TAG) 与此处无关。我怎样才能达到我的要求?
谢谢,
【问题讨论】:
标签: android android-volley timertask