¿Cómo usar un controlador de Android para actualizar un TextView en el subproceso de UI?

Quiero actualizar un TextView de una tarea asincrónica en una aplicación de Android. ¿Cuál es la forma más sencilla de hacer esto con un Handler ?

Hay algunas preguntas similares, como esta: Actualización de Android TextView con Handler , pero el ejemplo es complicado y no parece que se responda.

Hay varias formas de actualizar su interfaz de usuario y modificar una View como una TextView de TextView desde fuera del subproceso de la interfaz de usuario. Un Handler es solo un método.

Aquí hay un ejemplo que permite que un solo Handler responda a varios tipos de solicitudes.

En el nivel de clase, define un Handler simple:

 private final static int DO_UPDATE_TEXT = 0; private final static int DO_THAT = 1; private final Handler myHandler = new Handler() { public void handleMessage(Message msg) { final int what = msg.what; switch(what) { case DO_UPDATE_TEXT: doUpdate(); break; case DO_THAT: doThat(); break; } } }; 

Actualice la interfaz de usuario en una de sus funciones, que ahora está en el hilo de la interfaz de usuario:

 private void doUpdate() { myTextView.setText("I've been updated."); } 

Desde dentro de su tarea asíncrona, envíe un mensaje al Handler . Hay varias formas de hacerlo. Esto puede ser el más simple:

 myHandler.sendEmptyMessage(DO_UPDATE_TEXT); 

También puede actualizar el subproceso de IU desde el hilo de fondo de esta manera también:

  Handler handler = new Handler(); // write in onCreate function //below piece of code is written in function of class that extends from AsyncTask handler.post(new Runnable() { @Override public void run() { textView.setText(stringBuilder); } });