如何在android中停止ASyncTask线程

时间:2010-12-13 12:59:36

标签: android multithreading android-asynctask

can anybody have any idea how to stop ASyncTask thread in android?.

实际上我有一个创建线程并执行它们的循环。当这个循环结束时,我想停止所有运行的线程。 无论如何要阻止线程?

非常感谢。

2 个答案:

答案 0 :(得分:41)

根据我对AsyncTask的体验,调用cancel(boolean mayInterruptIfRunning)并不一定会停止执行后台进程。所有这一切似乎都会导致AsyncTask执行onCancelled(),而 会在完成后运行onPostExecute()。行为可能取决于您在doInBackgound()

中具有的确切代码

答案 1 :(得分:1)

在我的情况下,我使用HttpPost,HttpGet等执行服务器请求。我发现结束AsyncTask的唯一方法是调用abort()方法,如下例所示

if (isCancelled) {
     try {
         //cancel the task and immediately abort the HttpRequest
         uploadTask.cancel(true);
         post.abort();
     } catch (UnsupportedOperationException e) {
         e.printStackTrace();
     }
}