Android sleep () sin bloquear la interfaz de usuario

Para mi nueva aplicación de Android, necesito una función, que agote el tiempo de espera de mi aplicación durante 3 segundos. Probé la función "sleep ()" de esta manera:

seekBar1.setProgress(50);                // Set something for my SeekBar

try{
   Thread.sleep(3000);                   // Wait for 3 Seconds
} catch (Exception e){
   System.out.println("Error: "+e);      // Catch the exception
}

button.setEnabled(true);                 // Enable my button

Parece que funciona, pero si estaba ejecutando la aplicación lo hace así: Espere 3 segundos, configure el progreso y active el botón. Primero quiero establecer el progreso y luego esperar 3 segundos y solo entonces para habilitar el botón.

¿"Sleep ()" es el correcto para mi uso o qué puedo hacer si mi aplicación lo hace en el orden correcto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta