thread run example android multithreading postdelayed

run - Cómo retrasar la ejecución de Android



runnable android example (2)

Estoy construyendo un juego de mesa para Android que cuenta con AI. La IA obtiene un turno y tiene que invocar una serie de acciones, luego de lo cual las publicaciones invalidan mi vista personalizada para actualizar.

Necesito reducir la velocidad de estas acciones para que el usuario vea que la IA tiene su turno en lugar de parpadear.

He intentado algo en este sentido

try { doFirstThing(); Thread.sleep(500) //post invalidate doNextThing(); Thread.sleep(1000) //post invalidate } catch (Exception e) { }

Sin embargo, esto no tiene ningún efecto. También esto se está ejecutando en un hilo separado si esto no era obvio.

¿Cuál es mi mejor opción? He visto el controlador, pero no es necesario, ya que debo ejecutar una serie de tareas en secuencia, actualizando la vista cada vez.


Solo para agregar una muestra: el siguiente código puede ejecutarse fuera del hilo de la interfaz de usuario. Definitivamente, Handler debe usarse para retrasar tareas en Android

Handler handler = new Handler(Looper.getMainLooper()); final Runnable r = new Runnable() { public void run() { //do your stuff here after DELAY milliseconds } }; handler.postDelayed(r, DELAY);


Usar un controlador, que es una buena idea si está ejecutando desde un subproceso de interfaz de usuario ...

final Handler h = new Handler(); final Runnable r2 = new Runnable() { @Override public void run() { // do second thing } }; Runnable r1 = new Runnable() { @Override public void run() { // do first thing h.postDelayed(r2, 10000); // 10 second delay } }; h.postDelayed(r1, 5000); // 5 second delay