如何在android中停止异步任务线程
实际上,我有一个创建线程并执行它们的循环。当这个循环结束时,我想停止所有已经运行的线程。 是否仍有停止线程的方法如何在android中停止异步任务线程,android,multithreading,android-asynctask,Android,Multithreading,Android Asynctask,实际上,我有一个创建线程并执行它们的循环。当这个循环结束时,我想停止所有已经运行的线程。 是否仍有停止线程的方法 非常感谢。根据我对异步任务的经验,调用cancel(布尔可能中断frunning)并不一定会停止后台进程的执行。所有发生的事情似乎都是AsyncTask将执行onCancelled(),而在完成时不会运行onPostExecute()。这种行为可能完全取决于您在doInBackgound()中的代码。在我的例子中,我使用HttpPost、HttpGet等执行服务器请求。我找到的结束A
非常感谢。根据我对
异步任务的经验
,调用cancel(布尔可能中断frunning)
并不一定会停止后台进程的执行。所有发生的事情似乎都是AsyncTask
将执行onCancelled()
,而在完成时不会运行onPostExecute()
。这种行为可能完全取决于您在doInBackgound()
中的代码。在我的例子中,我使用HttpPost、HttpGet等执行服务器请求。我找到的结束AsyncTask的唯一方法是调用abort()方法,如下面的示例所示
can anybody have any idea how to stop ASyncTask thread in android?.
首先,是什么让你认为在循环中分叉线程是个好主意?是的。定期检查doInBackground()中的isCancelled(),看看是否应该停止工作并自己完成。
if (isCancelled) {
try {
//cancel the task and immediately abort the HttpRequest
uploadTask.cancel(true);
post.abort();
} catch (UnsupportedOperationException e) {
e.printStackTrace();
}
}