我在android的一个活动中有多个asynctask,我通常这样称呼他们:
new call_SOAPCheck().execute();
或这样
new MainActivity.DownloadTask(getApplicationContext()).execute("http://.....");
[我想取消按下后退按钮时正在运行的任何异步任务,但是由于我没有创建实例,所以我无法调用.cancell(true)。
有没有办法杀死没有实例运行的异步任务?
之所以这样称呼他们,是因为我需要在同一活动中多次执行它们,如果我像“全局”变量那样声明它们,则会收到一个错误,我只能执行一次。
而且,我的asynctask内没有循环,所以我不能定期检查isCancelled()
为什么不保留引用,并重新创建它们:
而不是这样做:
new call_SOAPCheck().execute();
执行此操作:
//keep a global ref
call_SOAPCheck task;
然后,只要您想一次又一次地调用任务,就一次又一次地重新创建。通过这样做:
private void callTaskAgain(){
task = new call_SOAPCheck();
task.execute();
}