AsyncTask: Tareas Asíncronas Android

AsyncTask: Tareas Asíncronas Android

Hola de nuevo a todos, en esta ocasión vamos a hablar un poco sobre la clase AsyncTask que nos proporciona android.

clase asynctask android

¿Para que sirve AsyncTask?

Anteriormente, cuando nuestra aplicación android requería de conectarse a un servicio REST para poder interactuar con nuestra información alojada en servidores de la red, teníamos que trabajar con conexiones mediante hilos, esto es una tarea algo laboriosa.

Por ese motivo, y por la necesidad que existía de hacer la vida mas sencilla a los desarrolladores de aplicaciones android, nació la clase AsyncTask, que no es ni mas ni menos que una clase que nos proporciona la realización de peticiones al servidor de una forma mucho mas rápida, ágil e intuitiva.

En este post no se va a profundizar en la explicación de los hilos en android, por lo que si deseas obtener mas información acerca de los mismos, puedes ver aquí.

 

¿Como funciona AsyncTask?

La clase AsyncTask posee los siguientes métodos que nos permitirán coordinar la ejecución de las tareas que deseas ubicar en segundo plano. Estos métodos tienen los siguientes propósitos:

  • onPreExecute(): En este método van todas aquellas instrucciones que se ejecutarán antes de iniciar la tarea en segundo plano. Normalmente es la inicialización de variables, objetos y la preparación de componentes de la interfaz.
  • doInBackground(Parámetros…): Recibe los parámetros de entrada para ejecutar las instrucciones especificas que irán en segundo plano, luego de que ha terminado onPreExecute(). Dentro de él podemos invocar un método auxiliar llamado publishProgress(), el cual transmitirá unidades de progreso al hilo principal. Estas unidades miden cuanto tiempo falta para terminar la tarea, de acuerdo a la velocidad y prioridad que se está ejecutando.
  • onProgressUpdate(Progreso…): Este método se ejecuta en el hilo de UI luego de que publishProgress() ha sido llamado. Su ejecución se prolongará lo necesario hasta que la tarea en segundo plano haya sido terminada. Recibe las unidades de progreso, así que podemos usar algún View para mostrarlas al usuario para que este sea consciente de la cantidad de tiempo que debe esperar.
  • onPostExecute(Resultados…): Aquí puedes publicar todos los resultados retornados por doInBackground() hacia el hilo principal.
  • onCancelled(): Ejecuta las instrucciones que desees que se realicen al cancelar la tarea asíncrona.

Gracias a estos métodos que nos proporciona esta clase, nuestro manejo de hilos nos va hacer la vida mucho mas sencilla a la hora de realizar peticiones mediante servicios REST.

 

Conclusión

La siguiente ocasión que necesites realizar este tipo de conexiones, no dudes en utilizar la clase AsyncTask ya que te facilitará en gran medida en manejar las peticiones a los diferentes servidores.

Ahora para ponerlo en práctica, os comparto un ejercicio de nuestra web amiga hermosaprogramacion

No dudes en compartir este post con otros desarrolladores, les será de gran ayuda.

Hasta la próxima!

About the author / victor

Latest comments

  • James
    14 Septiembre, 2015 at 14:42 Responder

    Una introducción muy clara y precisa Victor. Gracias por la mención 😀

    • victor
      14 Septiembre, 2015 at 14:52 Responder

      Muchas gracias por tu interés.

      Saludos

Leave a comment