AsyncTask: Tareas Asíncronas Android
Hola de nuevo a todos, en esta ocasión vamos a hablar un poco sobre la clase en desarrollo android AsyncTask. Es una claseque nos proporciona android.
¿Para que sirve en desarrollo android 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. Manejar estos hilos era 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. No es ni mas ni menos que una clase que nos proporciona para 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. Si deseas obtener mas información acerca de los mismos, puedes adentrarte más en ello leyendo en otros blogs relacionados.
¿Como funciona en desarrollo android AsyncTask?
La clase AsyncTask posee los siguientes métodos que nos permitirá al desarrollador android freelance 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. Esto irá en función de 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.
No dudes en compartir este post con otros desarrolladores, les será de gran ayuda.
Hasta la próxima!