Hallo habe mir die Sache nochmal angeschaut. Bei der ProgressBar machst Du die Zeit intensiven Sachen gar nicht im Thread.
aus dem Thread schickst du nur eine Nachricht an den Handler. Die ProgressBar läuft somit im Ui Thread. Ich habe das mit zwei ProgressBars so gelöst.
Deine animationDrawable.start(); Führst du auch im Handler aus und somit auch im UI und nicht im Thread aus.
Um es anzupassen währe der Code deiner animationDrawable.start(); funktion gut.
Hoffe das Hilft weiter.
ps. Deine progressbar läuft nicht komplett im ui thread denn dein CountDownTimer ist eigentlich schon ein eigener thread das macht Android für dich.
private ProgressBar progressBar;
private ProgressBar progressBar2;
private int progressStatus = 0;
private int progressStatus2 = 0;
progressBar = (ProgressBar) findViewById(R.id.progressBar);
progressBar2 = (ProgressBar) findViewById(R.id.progressBar2);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case 0:
progressBar.setProgress(progressStatus);
break;
case 1:
progressBar2.setProgress(progressStatus2);
break;
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
while (progressStatus < 100) {
progressStatus += 1;
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}
};
Thread thread = new Thread(runnable);
thread.start();
Runnable runnable2 = new Runnable() {
@Override
public void run() {
while (progressStatus2 < 100) {
progressStatus2 += 1;
try {
Thread.sleep(150);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.sendEmptyMessage(1);
}
}
};
Thread thread2 = new Thread(runnable2);
thread2.start();
Alles anzeigen