Esperando que el hilo termine sin bloquear el hilo de la interfaz de usuario

Estoy ejecutando un Thread dentro de methode y quiero devolver un valor una vez que termine el hilo, el problema que traté de hacer join (), pero que bloquea el hilo de la interfaz de usuario. ¿Cómo podría esperar a que el hilo para terminar y luego devolver el valor sin bloquear el hilo de interfaz de usuario?

Boolean foo(){ myThread mt = new myThread(); mt.start(); return mt.isSentSuccessfully; } 

Puedes usar Android AsyncTask para eso. http://developer.android.com/reference/android/os/AsyncTask.html Cuando lo uso, pongo la tarea de fondo en una clase que extiende AsyncTask y sobrescribir los onPreExecute() y onPostExecute(..) para mostrar / Ocultar el ProgressDialog . Funciona bastante bien.

Si realmente no desea utilizar el AsyncTask, entonces puede que desee definir un manejador

Entonces en tu hilo de fondo enviar un mensaje al hilo principal cuando el trabajo de fondo termina con algo como:

 ActivityMainThreadClassName.this.myUpdateHandler.sendMessage(m); 

Donde myUpdateHandler es el controlador que creó.

¿Intentaste encuestar a Thread.getState() ?

Algo como esto:

 android.os.Handler h = new Handler(); h.postDelayed(new Runnable() { public void run () { if (thread.getState() == Thread.State.TERMINATED) { // your code here return; } h.postDelayed(this, 1000); }, 1000); 

Este ejemplo debe sondear un estado de hilo cada segundo … ( no lo probé )

  • No error "Sólo el subproceso original que creó una jerarquía de vista puede tocar sus vistas" cuando la vista se actualiza sin demora
  • El hilo no vuelve después de notifyall ()
  • ¿Es un error o una característica? En algunos casos es posible acceder al subproceso de interfaz de usuario de una tarea que no se ejecuta en el subproceso de interfaz de usuario
  • Cómo comprobar si se ejecuta en el hilo de la interfaz de usuario en Android?
  • diferencia runable androide
  • CancelaciónExcepción al utilizar ExecutorService
  • RxAndroid: cambios de interfaz de usuario en el subproceso Schedulers.io ()
  • Cómo "esperar" un hilo en Android
  • Java / Android espera hasta que haya terminado un hilo antes de ejecutar un nuevo método
  • ¿Es posible detener un hilo cuando el usuario pulsa la tecla de retroceso?
  • Java.lang.RuntimeException: Sólo se puede crear un Looper por subproceso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.