Dormir un hilo hasta que un evento sea asistido en otro hilo

Tengo dos subprocesos en una aplicación de Android, uno es el subproceso de vista y el otro es el subproceso de trabajo. Lo que quiero hacer es, dormir el hilo de trabajo hasta que el hilo de vista finalice el manejo del método onDraw.

¿Como puedo hacer esto? ¿Hay alguna espera para la señal o algo?

Compartir un java.lang.Object entre los dos subprocesos, cuyo único propósito es informar al hilo de trabajo cuando pueda continuar su trabajo. Siempre que el hilo de trabajo alcanza un punto donde debe dormir, hace esto:

stick.wait(); 

Cuando el hilo de vista finaliza su trabajo onDraw, llama a esto:

 stick.notify(); 

Tenga en cuenta el requisito de que el subproceso de vista posee el monitor en el objeto. En su caso, esto debe ser bastante simple de hacer cumplir con un pequeño bloque de sincronización:

 void onDraw() { ... synchronized (stick) { stick.notify(); } } // end onDraw() 

Consulte el javadoc para java.lang.Object en estos métodos (y notifyAll, por si acaso); Están muy bien escritos.

Si desea una API de concurrencia de nivel superior (con cosas como Barreras), puede probar el backport de la API de concurrencia de java 5, que funciona en java 1.3 y superior, y puede funcionar en Android. Los gustos de Object.wait / notify funcionarán, pero pueden ser un poco tersos.

http://backport-jsr166.sourceforge.net/

  • Hilo android sigue funcionando después de presionar el botón Atrás
  • Comunicación multihilo: ¿qué tan bueno es el uso de variables atómicas como AtomicInteger? ¿Por qué no hay AtomicFloat?
  • ¿Por qué parece que tomar mucho tiempo para que este bloque sincronizado obtenga un bloqueo?
  • Método runOnUiThread () para Android
  • ¿Los hilos añaden mucha sobrecarga a una aplicación?
  • Java.util.concurrent.RejectedExecutionException en Async Tarea Android
  • Android Looper y pila de llamadas
  • Precisión del sueño del hilo
  • Java.lang.IllegalMonitorStateException: objeto no bloqueado por hilo antes de wait ()?
  • Inicio de un runnable en el hilo de fondo
  • La aplicación se bloquea y suspende todos los subprocesos al utilizar AsyncTask
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.