Red de conocimiento informático - Material del sitio web - Cómo utilizar AsyncTask para actualizar de forma asincrónica la interfaz UI en el desarrollo de Android

Cómo utilizar AsyncTask para actualizar de forma asincrónica la interfaz UI en el desarrollo de Android

Una forma de procesamiento asincrónico es AsyncTask. De hecho, su esencia es un grupo de subprocesos. Todas las tareas asincrónicas enviadas se ejecutarán en el subproceso de trabajo en este grupo de subprocesos. Hilo de la interfaz de usuario Durante la interacción, el hilo de trabajo entregará mensajes al hilo de la interfaz de usuario, creará un controlador y llamará a la función de devolución de llamada relevante para actualizar la interfaz de la interfaz de usuario del hilo de la interfaz de usuario.

AsyncTask resume los cinco estados de ejecución del subproceso en segundo plano, que son: a. Listo para ejecutarse, b. Ejecución en segundo plano, c. Actualización en progreso, d. Tarea en segundo plano completa, e. En esta etapa, AsyncTask proporciona cinco funciones de devolución de llamada: una de ellas está lista para ejecutarse: onPreExecute(), que es ejecutada por el hilo de la interfaz de usuario inmediatamente después de que se ejecuta la tarea. Este paso generalmente se usa para crear la tarea y mostrar la barra de progreso en la interfaz de usuario (UI);

doInBackground(Params...), después de ejecutar el método onPreExecute(), el hilo en segundo plano se ejecutará. Llame inmediatamente a la función de devolución de llamada. Aquí se suelen realizar cálculos en segundo plano que consumen mucho tiempo. Esta función debe devolver el resultado del cálculo y pasarlo a onPostExecute(). Dentro de esta función, también puedes publicar una o más unidades de progreso usando PublishProgress(Progress...) . Estos valores se publicarán en el hilo de la interfaz de usuario en onProgressUpdate(Progress...) del hilo de la interfaz de usuario;

Complete la tarea en segundo plano: onPostExecute(Resultado), llamada cuando se completa el cálculo en segundo plano. El resultado del cálculo en segundo plano se pasará a la función como parámetro;

Finalmente, el código asíncrono se iniciará en el programa;