取消没有实例的异步任务(Android)
Cancel asynctask without instance (Android)
我在 android 中的一个 activity 中有多个异步任务,我通常这样称呼它们:
new call_SOAPCheck().execute();
或者像这样
new MainActivity.DownloadTask(getApplicationContext()).execute("http://.....");
我想在按下后退按钮时取消任何异步任务 运行,但由于我没有创建实例,所以我无法调用 .cancell(true)。
有没有办法在没有实例的情况下终止异步任务运行?
我这样称呼它们的原因是我需要在同一个 activity 中多次执行它们,如果我将它们声明为 "global" 变量,我会得到一个错误,我只能执行一次。
此外,我的异步任务中没有循环,所以我无法定期检查 isCancelled()
为什么不保留一个引用,然后重新创建它们:
而不是这样做:
new call_SOAPCheck().execute();
这样做:
//keep a global ref
call_SOAPCheck task;
然后每当你想一次又一次调用任务时,一遍又一遍地重新创建。通过这样做:
private void callTaskAgain(){
task = new call_SOAPCheck();
task.execute();
}
我在 android 中的一个 activity 中有多个异步任务,我通常这样称呼它们:
new call_SOAPCheck().execute();
或者像这样
new MainActivity.DownloadTask(getApplicationContext()).execute("http://.....");
我想在按下后退按钮时取消任何异步任务 运行,但由于我没有创建实例,所以我无法调用 .cancell(true)。
有没有办法在没有实例的情况下终止异步任务运行?
我这样称呼它们的原因是我需要在同一个 activity 中多次执行它们,如果我将它们声明为 "global" 变量,我会得到一个错误,我只能执行一次。
此外,我的异步任务中没有循环,所以我无法定期检查 isCancelled()
为什么不保留一个引用,然后重新创建它们:
而不是这样做:
new call_SOAPCheck().execute();
这样做:
//keep a global ref
call_SOAPCheck task;
然后每当你想一次又一次调用任务时,一遍又一遍地重新创建。通过这样做:
private void callTaskAgain(){
task = new call_SOAPCheck();
task.execute();
}