Android中CountDownTimer 實現(xiàn)倒計時功能
CountDownTimer
CountDownTimer 是android 自帶的一個倒計時類,使用這個類可以很簡單的實現(xiàn) 倒計時功能
CountDownTimer 的實現(xiàn)方式
new CountDownTimer(6000,1000) {//第一個參數(shù)表示的是倒計時的總時間,第二參數(shù)表示的是倒計時的間隔時間。
@Override
public void onTick(long millisUntilFinished) {//倒計時的過程
textView.setText(millisUntilFinished / 1000 + "秒");
}
@Override
public void onFinish() {//倒計時結(jié)束
textView.setText("倒計時結(jié)束");
}
}.start();
實現(xiàn)效果

取消計時器
調(diào)用 CountDownTimer 的 cancel() 方法,可以為我們?nèi)∠嫊r器:但是這個方法,只有在 android 5.0 以上才有效果,在android 5.0 以下并沒有效果。如果需要在android 5.0 以下的系統(tǒng)中也使用 cancel,需要我們自己根據(jù) CountDownTimer 源碼中的 實現(xiàn)方式,重新實現(xiàn)一下。
/**
* Cancel the countdown.
*/
public synchronized final void cancel() {
mCancelled = true;
mHandler.removeMessages(MSG);
}
private static final int MSG = 1;
// handles counting down
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
synchronized (CountDownTimer.this) {
if (mCancelled) {
return;
}
final long millisLeft = mStopTimeInFuture - SystemClock.elapsedRealtime();
if (millisLeft <= 0) {
onFinish();
} else if (millisLeft < mCountdownInterval) {
// no tick, just delay until done
sendMessageDelayed(obtainMessage(MSG), millisLeft);
} else {
long lastTickStart = SystemClock.elapsedRealtime();
onTick(millisLeft);
// take into account user's onTick taking time to execute
long delay = lastTickStart + mCountdownInterval - SystemClock.elapsedRealtime();
// special case: user's onTick took more than interval to
// complete, skip to next interval
while (delay < 0) delay += mCountdownInterval;
sendMessageDelayed(obtainMessage(MSG), delay);
}
}
}
};
由于在 android 5.0以上 增加了一個
private boolean mCancelled = false;
所以我們只需要在 5.0 以下的系統(tǒng)中,去掉
if (mCancelled) {
return;
}
去掉這個判斷即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android使用CountDownTimer模擬短信驗證倒計時
- Android CountDownTimer實現(xiàn)定時器和倒計時效果
- Android使用CountDownTimer類實現(xiàn)倒計時鬧鐘
- Android實現(xiàn)倒計時CountDownTimer使用詳解
- Android利用CountDownTimer實現(xiàn)驗證碼倒計時效果實例
- Android 列表倒計時的實現(xiàn)的示例代碼(CountDownTimer)
- Android利用CountDownTimer實現(xiàn)倒計時功能 Android實現(xiàn)停留5s跳轉(zhuǎn)到登錄頁面
- Android CountDownTimer案例總結(jié)
相關(guān)文章
Android中轉(zhuǎn)場動畫的實現(xiàn)與兼容性處理
大家都知道Android 中的動畫有很多,除了在一個界面上使用幀動畫、屬性動畫將一個或多個 View 進(jìn)行動畫處理以外,還可以用于兩個界面之間過渡、跳轉(zhuǎn)。本文的內(nèi)容包括:Android 5.0+ 的轉(zhuǎn)場動畫和Android 4.X 模擬實現(xiàn) Android 5.0+ 轉(zhuǎn)場效果。有需要的可以參考借鑒。2016-10-10
Android之帶group指示器的ExpandableListView(自寫)
Android缺省的ExpandableListView的group header無法固定在界面上,在網(wǎng)上搜索了好多都不盡人意,于是乎在別人的基礎(chǔ)上改進(jìn)了一點點,原理都差不多2013-06-06

