Está en la página 1de 4

Implementación Async Task

Formas de simular asincronía

FRANCO SIERRA ESPINOZA


AsyncTask: Tareas Asíncronas en Android

 Este artículo ha sido creado con el fin de presentarte los beneficios del uso de hilos en tus aplicaciones Android. La idea es evaluar entre varias opciones la
mejor alternativa para implementar concurrencia entre las tareas que se ejecutan.
 Esta valoración mantendrá la sensación multitarea, evitará bloqueos y optimizará el hilo principal de tus proyectos.
 El Manejo de Hilos en Android
 Un hilo es una unidad de ejecución asociada a una aplicación. Es la estructura de la programación concurrente, la cual tiene como objetivo dar la percepción
al usuario que el sistema que ejecuta realiza múltiples tareas a la vez.
 Aunque los hilos se benefician de las tecnologías multinúcleos y multiprocesamiento, no significa que una arquitectura simplista no se beneficie de la
creación de hilos.
 Cuando se construye una aplicación Android, todos los componentes y tareas son introducidos en el hilo principal o hilo de UI ( UI Thread). Hasta el
momento hemos trabajado de esta forma, ya que las operaciones que hemos realizado toman poco tiempo y no muestran problemas significativos de
rendimiento visual en nuestros ejemplos.
 Pero en tus proyectos reales no puedes pretender que todas las acciones que lleva a cabo tu aplicación sean simples y concisas.
 En ocasiones hay instrucciones que toman unos segundos en terminarse, esta es una de las mayores causas de la terminación abrupta de las aplicaciones.
Android está diseñado para ofrecerle al usuario la opción de terminar aquellas aplicaciones que demoran más de 5 segundos en responder a los eventos del
usuario.
 Cuando esto pasa, podemos ver el famoso Diálogo ANR (Application not respond).
Características principales de la clase AsyncTask:

• Proporciona un mayor control y orden en la ejecución de nuestros procesos en segundo


plano.
• Marco de trabajo para operaciones no muy costosas.
• Las tareas se ejecutan en un sólo hilo, para evitar errores derivados de ejecuciones en
paralelo.
• Tarea asíncrona definida en 4 pasos:
( OnPreExecute(), doInBackground(Params...), OnProgressUpdate(Progress...)  y
onPostExecute(Result...)
• Se añadió a partir de la versión Honeycomb (API nivel 3, versión Android 3.0). Aquí, puedes
consultar la documentación oficial de la clase AsyncTask.
Implementación de AsyncTask

 A nivel de implementación, se deberá heredar de la clase Asynctask, donde se definen tres tipos genéricos:
• public class TareaAsyncTask extends AsyncTask<params, progress, result>{Params: Tipo de parámetro que se recibirá como entrada
para la tarea en el método doInBackground(Params).
• Progress: Parámetros para actualizar el hilo principal o UIThread.
• Result: Es el resultado devuelto por el procesamiento en segundo plano.
 Además de los tipos genéricos comentados anteriormente, será necesario sobrescribir los siguientes métodos para procesar y
devolver la información tratada en segundo plano:
• OnPreExecute(): Método llamado antes de iniciar el procesamiento en segundo plano.
• doInBackground(Params...): En este método se define el código que se ejecutará en segundo plano. Recibe como parámetros los
declarados al llamar al método execute(Params).
• OnProgressUpdate(Progress...): Este método es llamado por publishProgress(), dentro de doInBackground(Params) (su uso es muy
común para por ejemplo actualizar el porcentaje de un componente ProgressBar).
• onPostExecute(Result...): Este método es llamado tras finalizar doInBackground(Params). Recibe como parámetro el resultado
devuelto por doInBackground(Params).
• OnCancelled(): Se ejecutará cuando se cancele la ejecución de la tarea antes de su finalización normal.

También podría gustarte