Cómo actualizar la interfaz de usuario desde un hilo de fondo en Android

Si bien el uso de ‘onPostExecute’ en una ‘AsyncTask’ es una de las soluciones, no se puede aplicar en todas partes, especialmente cuando no hay Tarea Async (por ejemplo, cuando realiza una llamada de red asincrónica con la ayuda de una biblioteca de terceros). Finalizar una llamada de red síncrona con Async Task es una de las formas de utilizar AsyncTask.

Recientemente encontré el mismo problema cuando quería hacer una llamada asincrónica usando la biblioteca HttpOk y luego me enteré de esto …

Hacemos un nuevo ejecutable en algo llamado runOnUiThread () . Luego, le decimos al sistema que ejecute líneas particulares de código en el hilo de la interfaz de usuario. La sintaxis se muestra arriba. En lugar de MainActivity.class, se debe usar el nombre real de la actividad, y en la función run (), puede mencionar el código que desea ejecutar en el hilo de la interfaz de usuario.

Puede insertar el bit de código anterior en la ubicación donde desea que se realicen las acciones en el hilo principal de la interfaz de usuario.

Usando la interfaz asyncTask, puede llevar fácilmente los cambios del hilo de fondo al hilo principal usando el método de sobrescritura onProgressUpdate (). Utiliza PublishProgress (datos) del subproceso en segundo plano para pasar los datos a onProgressUpdate (tipo de datos) que funciona en el subproceso principal.

Puede usar el objeto Handler and Message en Android para actualizar la interfaz de usuario desde el subproceso secundario para evitar excepciones. El siguiente artículo tiene un ejemplo en detalle.

Ejemplo de interfaz de usuario de Android Update de subproceso secundario

Use la siguiente función para realizar tareas en el hilo de la interfaz de usuario:

runOnUiThread (new Runnable () {
public void run () {
// Cualquier tarea que desees realizar
// Por ej. textView.setText (“ALGUNOS TEXTOS”)
}
});

Hay dos maneras.

  1. Use Handler. Puede usar el método Handler.post (Runnable runnable).
  2. Desde una actividad, puede llamar al método runOnUiThread ().

Puede usar el método de actividad runOnUiThread() para actualizar la interfaz de usuario desde el hilo de fondo. O puede usar un Handler Android para lograr esto.

Puedes usar Asynctask para hacer eso. El método onPostExecute es el que se utiliza para realizar cambios en la interfaz de usuario mientras se hace algo en el hilo de fondo.