Avatar ·

Cómo llamar a un método con retardo en Android (Java)

¡Hola a todos! Soy nuevo en el desarrollo de Android y escribo en Java. Me encontré con la siguiente tarea: necesito que después de presionar un botón, aparezca un mensaje Toast en la pantalla, pero no inmediatamente, sino después de 3 segundos. Intenté usar Thread.sleep(3000) en el hilo de UI, pero la aplicación se congela y el Toast no aparece. Leí que no se debe hacer así. Aquí está mi código: ```java public void onClick(View v) { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } Toast.makeText(this, "¡Hola después de 3 segundos!", Toast.LENGTH_SHORT).show(); } ``` Es claro que Thread.sleep bloquea el hilo principal y la UI no se actualiza. ¿Cómo implementar correctamente el retardo para que la aplicación no se congele? He visto menciones sobre Handler y Timer, pero no entiendo cómo aplicarlos correctamente en este escenario simple. Agradecería un ejemplo detallado con explicación. <<>>

Uso de Handler para ejecución retrasada

El problema en tu código es que bloquea