第一,先簡單介紹下CountDownTime是官方的倒計時類,傳如兩個參數(shù),第一個參數(shù)是總時間,第二個參數(shù)是時間間隔,毫秒級
private CountDownTimer timer =newCountDownTimer(10000,1000) {
@Override//此方法是每個時間間隔都會調(diào)用一次
publicvoidonTick(longmillisUntilFinished) {
mTvShow.setText((millisUntilFinished /1000) +"秒后可重發(fā)");
}
@Override// 此方法是倒計時結(jié)束時調(diào)用的方法
publicvoidonFinish() {
mTvShow.setEnabled(true); mTvShow.setText("獲取驗證碼");
}
};
第二,一般我們都會用TextView來展示剩余時間,那么此時我們可以自定義一個計時器,在其構(gòu)造方法中我們傳遞一個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() {
}
}
第三,如果取消倒計時,那么可以調(diào)用cancel()的方法.
ok若有錯誤之處請告知我一下,479192454(群號,初級開發(fā))謝謝!也希望可以一起交流.