我在我的项目中使用Android Volley库来执行网络请求,一切都很顺利,但是我在这个库的“取消”功能方面遇到了一些麻烦。我解释一下我的问题...
我有一个活动,在OnCreate
方法中执行请求,请求被调用,没有问题。但为了确保cancel
方法可以正常工作,我想尝试测试两件事:
我发起请求后立即取消它,像这样:
MySingleton.getMyData("urltocall", getDataListener, requestTag);
MySingleton.getRequestQueue().cancelAll(requestTag);
这个方法可以正常工作!取消已经被调用(我也可以在Volley的Request类中看到它):
public void cancel() {
mCanceled = true; // my breakpoint is called here
}
我发送了请求,然后在我的活动的
onDestroy
和/或onStop
方法中调用相同的代码:MySingleton.getMyData("urltocall", getDataListener, requestTag);
MySingleton.getRequestQueue().cancelAll(requestTag);
但是这个方法不起作用!
requestTag不为null,并已传递给Volley,所以我不明白为什么第一个方法可以工作而另一个方法不能... 我的目的是在调用onDestroy
时取消请求...
谢谢您的帮助