以前写倒计时都是用的Timer、TimerTask组合使用,现在Android SDK中自带有个工具类CountDownTimer可以替代,使用起来挺方便的。
/**
* 每隔一秒钟执行一次,总共5分钟
*/
private CountDownTimer mTimer = new CountDownTimer(5*60*1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// 每隔一秒调用一次,剩余多少时间, 主线程中执行
sunshineTimeBtn.setText(TimeUtils.millisToTime(millisUntilFinished, TimeUtils.DateFormat.MMSS));
}
@Override
public void onFinish() {
// 执行完毕
sunshineTimeBtn.setText(R.string.get);
sunshineImage.setImageResource(R.mipmap.icon_sun_shine);
}
};
开启任务
mTimer.start();
结束后需要关闭任务
mTimer.cancel();
mTimer = null;