¿Qué es AsyncTask en Android?

¿Qué es AsyncTask?
AsyncTask es una clase abstracta de Android que ayuda a las aplicaciones de Android a manejar el hilo principal de la interfaz de usuario de manera eficiente. La clase AsyncTask nos permite realizar tareas duraderas / operaciones en segundo plano y mostrar el resultado en el hilo de la interfaz de usuario sin afectar el hilo principal.
¿Cuándo usar AsyncTask?
Suponga que ha creado una aplicación simple de Android que descarga archivos MP3 de Internet al iniciar la aplicación.
El siguiente diagrama de estado muestra la serie de operaciones que se realizarán cuando inicie la aplicación que creó:

A medida que se espera la respuesta (archivo MP3) del servidor, la aplicación no responde porque el hilo principal todavía está esperando que se complete la operación de descarga. Para superar esto, podemos crear un nuevo subproceso e implementar un método de ejecución para realizar esta llamada de red de manera similar a lo que solemos hacer en las aplicaciones Java normales, para que la interfaz de usuario siga respondiendo.
Pero manejarlo con un hilo separado puede crear algunos problemas adicionales cuando intentamos actualizar la interfaz de usuario en función del resultado de la operación realizada, ya que el kit de herramientas de la interfaz de usuario de Android no es seguro para los hilos.
Android tomó en cuenta todos estos problemas y creó una clase dedicada llamada ‘AsyncTask’ para manejar las tareas / operaciones que deben realizarse en segundo plano de forma asincrónica.

AsyncTask es una clase de contenedor que encierra la funcionalidad de Thread (Definición e Inicio de un Thread) y Handler Handler | Clase de desarrolladores de Android.

Básicamente combina la funcionalidad de ambas clases que es apta para el contexto de Android.

Proporciona los siguientes métodos:

  1. onPreExecute (): se invoca en el subproceso UI (uno con onCreate que establece el diseño de la actividad) antes de que se ejecute la tarea. Generalmente se usa para crear cuadros de diálogo o barras de progreso y llevar a cabo la inicialización.
  2. doInBackground (): (Esto es similar al método run () en el subproceso) Se invoca en el subproceso de fondo inmediatamente después de que onPreExecute () termine de ejecutarse. Generalmente se utiliza para realizar cálculos en segundo plano que pueden llevar mucho tiempo (por ejemplo, descargar). Los parámetros de la tarea asincrónica se pasan a este paso.
  3. onProgressUpdate (Progress): (Reemplazo del método sendMessage () en Handler) invocado en el subproceso de la interfaz de usuario después de una llamada a publishingProgress (). El momento de la ejecución no está definido. Este método se utiliza para mostrar cualquier forma de progreso en la interfaz de usuario mientras el cálculo en segundo plano aún se está ejecutando. Por ejemplo, se puede usar para animar una barra de progreso o mostrar registros en un campo de texto.
  4. onPostExecute (Resultado): (Para procesar los datos finales devueltos por doInBackground) Se invoca en el subproceso de la interfaz de usuario después de que finaliza el cálculo en segundo plano. El resultado del cálculo en segundo plano se pasa a este paso como un parámetro.

Antes de continuar para codificar AsyncTask en su proyecto, debe conocer el 1: Tipo de datos de entrada
2: Tipo de datos intermedio 3: Tipo de salida final.

Cos AsyncTask es una clase genérica que requerirá que mencione estos tipos de datos de antemano.

Nota: El método doInBackground () es obligatorio para sobrescribirse. Se pueden ignorar o implementar otros métodos según la necesidad.

Espero que esto ayude.

Es un concepto muy útil.

La aplicación de Android se ejecuta en un solo hilo cuando la lanzamos.

Método básico utilizado en una AsyncTask

Ejemplo de tarea asíncrona.

Todo este tema se describe en este video tutorial con un ejemplo, puedo compartir un enlace de este tutorial.

AsyncTask en Android

Ejemplo de AsyncTask

Android AsyncTask es una clase abstracta proporcionada por Android que nos da la libertad de realizar tareas pesadas en segundo plano y mantener el hilo de la interfaz de usuario ligero, lo que hace que la aplicación sea más receptiva.

La aplicación de Android se ejecuta en un solo hilo cuando se inicia. Debido a este modelo de subproceso único, las tareas que tardan más tiempo en obtener la respuesta pueden hacer que la aplicación no responda. Para evitar esto, usamos Android AsyncTask para realizar las tareas pesadas en segundo plano en un hilo dedicado y pasar los resultados al hilo de la interfaz de usuario. Por lo tanto, el uso de AsyncTask en la aplicación de Android mantiene el hilo de la interfaz de usuario receptivo en todo momento.

Los métodos básicos utilizados en una clase AsyncTask de Android se definen a continuación

  • doInBackground ()
  • onPreExecute ()
  • onPostExecute ()
  • onProgressUpdate ()

Haga clic aquí para conocer más información útil sobre Android

Hola,

En Android, las actividades y servicios y todos los mecanismos de devolución de llamada se ejecutan en el subproceso de la interfaz de usuario / subproceso principal . .

Entonces, lo que tenemos que hacer es ejecutar todo este tipo de subprocesos en segundo plano, para evitar AN R s y el subproceso principal no responderá. Una manera de hacerlo es AsyncTask

Espero eso ayude.

si hay alguna mala gramática y error tipográfico:

lo siento

¿Qué es AsyncTask?

AsyncTask es una clase abstracta proporcionada por Android que permite el uso correcto y fácil del hilo de la interfaz de usuario. Esta clase le permite realizar operaciones en segundo plano y publicar resultados en el subproceso de la interfaz de usuario sin tener que manipular subprocesos y / o controladores. AsyncTask está diseñado para ser una clase auxiliar en torno a Thread and Handler y no constituye un marco genérico de subprocesos.

Más detalles AsyncTask-in-Android

Simplemente revise este enlace, obtendrá todo sobre AsyncTask en Android: https://acadgild.com/blog/use-as

Puede leer todo acerca de la Tarea asíncrona de Android aquí >> Procesamiento en segundo plano en Android usando Tarea asíncrona – Edge Dev Studio y por qué probablemente no debería usarla 2018.