Android sleep () ohne die Benutzeroberfläche zu blockieren

Für meine neue Android-Anwendung benötige ich eine Funktion, die meine Anwendung für 3 Sekunden auslöst. Ich habe die Funktion "sleep ()" folgendermaßen ausprobiert:

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

Es scheint zu funktionieren, aber wenn ich die Anwendung ausgeführt habe, sieht es so aus: Warte 3 Sekunden, stelle den Fortschritt ein und aktiviere die Schaltfläche. Ich möchte zuerst den Fortschritt einstellen und dann 3 Sekunden warten und erst dann die Schaltfläche aktivieren.

Ist "sleep ()" das Richtige für meinen Gebrauch oder was kann ich noch tun, damit meine Anwendung es in der richtigen Reihenfolge macht?