2010-12-13 16 views
19
can anybody have any idea how to stop ASyncTask thread in android?. 

Actualmente tengo un bucle que crea hilos y los ejecuta. y cuando termine este ciclo quiero detener todos los hilos que se han ejecutado. hay de todos modos para detener los hilos?cómo detener el hilo ASyncTask en android

muchas gracias.

+0

Qué le hace pensar que se bifurcan hilos en un bucle es una buena idea en primer lugar? – CommonsWare

Respuesta

41

En mi experiencia con AsyncTask, llamar al cancel(boolean mayInterruptIfRunning) no necesariamente detiene la ejecución del proceso en segundo plano. Todo lo que parece suceder es que el AsyncTask ejecutará onCancelled(), y no ejecutaráonPostExecute() cuando finalice. El comportamiento probablemente depende exactamente de qué código tiene en doInBackgound()

+20

Es cierto. Compruebe Frecuentado() regularmente en doInBackground() para ver si debe detener el trabajo y terminar usted mismo. – icyerasor

1

En mi caso realizo solicitudes de servidor con HttpPost, HttpGet, etc. La única manera que encontré para poner fin a una AsyncTask estaba llamando el método de aborto() como se puede ver en el ejemplo siguiente

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