您好,登錄后才能下訂單哦!
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)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。
億速云公眾號
手機網(wǎng)站二維碼
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權(quán)所有
廣州億速云計算有限公司粵ICP備17096448號-1 粵公網(wǎng)安備 44010402001142號增值電信業(yè)務經(jīng)營許可證編號:B1-20181529