Índice

AsyncTask

Las AsyncTasks le permiten ejecutar fácilmente un tratamiento en tareas de segundo plano y recuperar el resultado en la interfaz del usuario sin bloquear el UI Thread.

Para utilizar las AsyncTasks hay que crear una nueva clase que extienda la clase AsyncTask.

public class myDownloadTask extends AsyncTask<Params, Progress, 
Result> {

La clase AsyncTask se parametriza con tres tipos de datos:

  • El tipo de dato que se pasa como parámetro a la clase, en concreto al método doInBackground.

  • El tipo de datos utilizado para publicar el avance de la tarea en ejecución. Se utiliza en el método onProgressUpdate (en una barra de progreso horizontal, por ejemplo).

  • El tipo de datos utilizado para publicar el resultado a la interfaz, se transmitirá al método onPostExecute a través del método doInBackground.

La clase AsyncTask le permite sobrecargar los siguientes métodos:

  • onPreExecute: este método le permite actualizar la interfaz de su aplicación antes de empezar a ejecutar la tarea en segundo plano. Este método se ejecuta en el UI Thread.

  • doInBackground: este método se ejecuta en un thread separado, lo que le permite ejecutar un tratamiento pesado en una tarea de segundo plano.

  • onProgressUpdate: este método le permite actualizar el progreso de la tarea en ejecución. Se invoca gracias a la función publishProgress.

  • onPostExecute: este método permite actualizar la interfaz con el resultado obtenido al final del tratamiento ejecutado en el método ...