Pregunta

En mi Actividad I utilizar varias clases AsyncTask.

¿Cómo cancelar AsyncTask cuando acabados actividad?

¿Fue útil?

Solución

No entiendo si sus "cancelar" medios rollback pero tiene un cancelar método en el clase AsyncTask .

Otros consejos

Creo que el mejor lugar para hacer esto es onStop

protected void onStop() {
    super.onStop();

    /*
    * The device may have been rotated and the activity is going to be destroyed
    * you always should be prepared to cancel your AsnycTasks before the Activity
    * which created them is going to be destroyed.
    * And dont rely on mayInteruptIfRunning
    */
    if (this.loaderTask != null) {
        this.loaderTask.cancel(false);
    }
}

en mi Tarea I a continuación, comprobar tan a menudo como sea posible si Cancelar fue llamado

protected String doInBackground(String... arg0) {
    if (this.isCancelled()) {
        return null;
    }
}

y de Dont curso se olvide de colocar datos que tal vez devueltos ya que no hay más actividad a recibirlo

protected void onPostExecute(List<UserStatus> result) {
    if(!this.isCancelled()) {
        //pass data to receiver
    }
}

El hilo AsyncTask se mantiene viva en un grupo de subprocesos para casos futuros de AsyncTask. No se puede quitar ellos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top