国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中CountDownTimer 實現倒計時功能

2019-10-23 18:29:28
字體:
來源:轉載
供稿:網友

android/243763.html">android/196351.html">CountDownTimer

CountDownTimer 是android 自帶的一個倒計時類,使用這個類可以很簡單的實現 倒計時功能

CountDownTimer 的實現方式

new CountDownTimer(6000,1000) {//第一個參數表示的是倒計時的總時間,第二參數表示的是倒計時的間隔時間。          @Override          public void onTick(long millisUntilFinished) {//倒計時的過程            textView.setText(millisUntilFinished / 1000 + "秒");          }          @Override          public void onFinish() {//倒計時結束            textView.setText("倒計時結束");          }        }.start();

實現效果

CountDownTimer,倒計時,android,倒計時實現,倒計時的實現

取消計時器

調用 CountDownTimer 的 cancel() 方法,可以為我們取消計時器:但是這個方法,只有在 android 5.0 以上才有效果,在android 5.0 以下并沒有效果。如果需要在android 5.0 以下的系統中也使用 cancel,需要我們自己根據 CountDownTimer 源碼中的 實現方式,重新實現一下。

  /**   * 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 以下的系統中,去掉

 if (mCancelled) {          return;        }

去掉這個判斷即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英山县| 广安市| 错那县| 华阴市| 延长县| 云安县| 孙吴县| 镇沅| 石台县| 修文县| 襄樊市| 卢湾区| 天津市| 都安| 疏附县| 安岳县| 万源市| 长子县| 孟津县| 高尔夫| 且末县| 莱阳市| 晋江市| 华宁县| 洞头县| 随州市| 辰溪县| 皋兰县| 肃南| 日喀则市| 武邑县| 陵水| 桃源县| 郧西县| 仙游县| 八宿县| 高台县| 原平市| 泌阳县| 缙云县| 沂水县|