Android sleep () sem bloquear a interface do usuário

Para o meu novo aplicativo Android, preciso de uma função, que exceda o tempo limite do meu aplicativo por 3 segundos. Eu tentei a função "sleep ()" assim:

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 funcionar, mas se eu estava executando o aplicativo, é assim: Aguarde 3 segundos, defina o progresso e ative o botão. Quero primeiro definir o progresso e, em seguida, aguardar 3 segundos e somente depois ativar o botão.

"Sleep ()" é o ideal para o meu uso ou o que posso fazer se meu aplicativo faz isso na ordem certa?

questionAnswers(4)

yourAnswerToTheQuestion