第一,先简单介绍下CountDownTime是官方的倒计时类,传如两个参数,第一个参数是总时间,第二个参数是时间间隔,毫秒级
private CountDownTimer timer =newCountDownTimer(10000,1000) {
@Override//此方法是每个时间间隔都会调用一次
publicvoidonTick(longmillisUntilFinished) {
mTvShow.setText((millisUntilFinished /1000) +"秒后可重发");
}
@Override// 此方法是倒计时结束时调用的方法
publicvoidonFinish() {
mTvShow.setEnabled(true); mTvShow.setText("获取验证码");
}
};
第二,一般我们都会用TextView来展示剩余时间,那么此时我们可以自定义一个计时器,在其构造方法中我们传递一个TextView
public classCountDownUtilextendsCountDownTimer {
privateTextViewtv;//
publicCountDownUtil(longmillisInFuture,longcountDownInterval) {
super(millisInFuture, countDownInterval);
}
publicCountDownUtil(longmillisInFuture,longcountDownInterval, TextView tv) {
super(millisInFuture, countDownInterval);
this.tv= tv;
}
@SuppressLint("NewApi")
@Override
public voidonTick(longmillisUntilFinished) {
tv.setText(DateFormat.getHours(millisUntilFinished));//设置时间
//这里接收的是毫秒值,当然,我们要将他格式化一下
}
@SuppressLint("NewApi")
@Override
public voidonFinish() {
}
}
第三,如果取消倒计时,那么可以调用cancel()的方法.
ok若有错误之处请告知我一下,479192454(群号,初级开发)谢谢!也希望可以一起交流.