Android的CountDownTimer默认只能运行一次,但可以通过一些方法来使其重复运行。以下是一种解决方法:
public class MainActivity extends AppCompatActivity {
private CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建CountDownTimer对象,并设置倒计时时间为10秒,每秒倒计时一次
countDownTimer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// 每秒钟调用一次,执行倒计时操作
Log.d("CountDownTimer", "onTick: " + millisUntilFinished / 1000);
}
@Override
public void onFinish() {
// 倒计时结束时调用
Log.d("CountDownTimer", "onFinish");
// 重新启动计时器
startCountDownTimer();
}
};
startCountDownTimer();
}
private void startCountDownTimer() {
// 取消之前的计时器
countDownTimer.cancel();
// 重新开始计时
countDownTimer.start();
}
}
在上面的示例中,我们首先创建了一个CountDownTimer对象,并设置倒计时时间为10秒,每秒倒计时一次。然后在onFinish()方法中重新启动计时器,实现了重复运行的效果。
每次要重新启动计时器时,我们先调用cancel()
方法取消之前的计时器,然后再调用start()
方法重新开始计时。
希望这个解决方法能帮助到你!