我正在做一个显示各种瑜伽姿势 60 秒的应用程序。我一直在努力让倒数计时器按我想要的方式工作。我需要计时器能够暂停,并在 15 秒后自动重新启动。Android 的 CountDownTimer 不起作用,因为它没有暂停。我尝试了 2 个不同版本的重写 Android CountDownTimer 和经典版本(Android CountDownTimer),它们似乎都有相同的错误,因为它们使用的是处理程序。
我试过这个版本:Android:CountDownTimer 跳过最后一个 onTick()!- 我添加了一个 onFinish 方法。
我正在尝试在 onFinish 方法中执行 Thread.sleep 15 秒,并且在进入 Thread.sleep 模式之前的最后一秒后它不会更新 UI。在以下代码中,直到 Thread.sleep 调用之后,TextView 才会更新为设置为空字符串。
cdt = new CountDownTimerWithPause(60000,1000,true) {
@Override
public void onTick(long millisUntiFinished) {
tvClock.setText("Remaining:" + millisUntiFinished/1000);
}
@Override
public void onFinish() {
tvClock.setText("");
bell.start();
if (bAutoPlayIsOn) {
tvClock.setText("waiting for next pose...");
try {
//15 second pauses between poses
Thread.sleep(15000);
//start over
listener.onForwardItemSelected();
ResetClocktoMaxTime(60000);
resume();
} catch (InterruptedException e) {
Log.d("Sleep Interrupted", e.toString());
e.printStackTrace();
}
catch (Exception e) {
Log.d("Timer", e.toString());
}
}
else {
tvClock.setText("Done");
btnStart.setText("Start ");
bClockIsTicking = false;
btnStart.setCompoundDrawablesWithIntrinsicBounds(null, playBtn, null, null);
}
}
};
任何人都知道如何以不同的方式执行此操作(15 秒后重新启动)?