Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中停止异步任务线程_Android_Multithreading_Android Asynctask - Fatal编程技术网

如何在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();
     }
}