web-dev-qa-db-ja.com

android)でASyncTaskスレッドを停止する方法

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

実際、私はスレッドを作成して実行するループを持っています。そして、このループが終了するときに、実行されたすべてのスレッドを停止したいと思います。とにかくスレッドを停止することはありますか?

どうもありがとう。

20
sajjoo

私のAsyncTaskの経験では、cancel(boolean mayInterruptIfRunning)を呼び出しても、必ずしもバックグラウンドプロセスの実行が停止するわけではありません。発生しているように見えるのは、AsyncTaskonCancelled()を実行し、完了時に実行しないonPostExecute()を実行することだけです。動作はおそらく、doInBackgound()にあるコードに正確に依存します

41
dave.c

私の場合、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();
     }
} 
1
Carlos