Это должно быть очень похоже на обычный таймер обратного отсчета - просто замените ваш подкласс на обычный экземпляр таймера. Кроме того, передайте действие в конструктор, чтобы оно могло делать все необходимое для обновления отображения.
например.
mCountDownTimer = MyCountDownTimer(totalMsecs, callInterval, this).start();
Где MyCountownTime будет иметь такие методы:
public void onTick(long millisUntilFinished) {
float fraction = millisUntilFinished / (float) totalMsecs;
// myActivity is passed in the constructor
mMillisUntilFinished = millisUntilFinished;
// progress bar is based on scale of 1 to 100;
mActivity.progressBar.setProgress((int) (fraction * 100));
}
public void onFinish() {
mMillisUntilFinished = 0;
handleTimeOut();
}
Предполагается, что mActivity передается в конструкторе. Я изменил код, чтобы предположить, что вызывающая активность была передана как переменная в конструкторе таймера и установлена как член класса таймера.