Android中CountDownTimer實現倒計時功能

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();

實現效果

Android中CountDownTimer 實現倒計時功能

取消計時器

調用 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;
        }

去掉這個判斷即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

本文題目:Android中CountDownTimer實現倒計時功能
網頁網址:http://m.kartarina.com/article0/ijpeio.html

成都網站建設公司_創新互聯,為您提供外貿網站建設靜態網站響應式網站網站維護網站導航營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 国产精品va无码一区二区| 久久综合一区二区无码| 亚洲人成人无码.www石榴| 男人的天堂无码动漫AV| 久久天堂av综合色无码专区| 国产精品成人无码久久久久久| 无码人妻熟妇AV又粗又大 | 免费人成无码大片在线观看| 国产日产欧洲无码视频无遮挡 | 精品无码免费专区毛片| H无码精品3D动漫在线观看| 18禁网站免费无遮挡无码中文| 内射无码午夜多人| 亚洲av纯肉无码精品动漫| 国产av永久无码天堂影院| 亚洲成?v人片天堂网无码| 91无码人妻精品一区二区三区L | 人妻丰满熟妇无码区免费| 亚洲va中文字幕无码| 2020无码专区人妻系列日韩| 精品无码久久久久国产动漫3d| 中文有无人妻vs无码人妻激烈| 无码VA在线观看| 亚洲av永久无码一区二区三区| 国产成人AV片无码免费| 久久久久亚洲AV无码专区网站| 国产精品白浆无码流出| 国产精品午夜无码AV天美传媒 | 狠狠躁狠狠躁东京热无码专区| 日韩AV无码精品一二三区| 亚洲成av人无码亚洲成av人| 精品人妻大屁股白浆无码| 无码人妻久久一区二区三区| 亚洲AV无码成人专区片在线观看| 中文字幕无码乱人伦| 无码国产精品一区二区免费3p| 久久精品中文字幕无码| 欧洲无码一区二区三区在线观看| 无码精品人妻一区二区三区漫画 | 日韩精品无码一区二区三区AV | 亚洲精品偷拍无码不卡av|