91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中CountDownTimer 實現倒計時功能

發布時間:2020-09-29 15:29:30 來源:腳本之家 閱讀:163 作者:木木木木頭腦袋 欄目:移動開發

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

去掉這個判斷即可。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泉县| 延寿县| 抚远县| 股票| 宜黄县| 绥德县| 北辰区| 东光县| 定南县| 莒南县| 中江县| 武冈市| 长沙市| 建湖县| 商都县| 紫阳县| 赫章县| 宜都市| 阿克| 施秉县| 奉贤区| 贺州市| 寻乌县| 合川市| 松阳县| 黔江区| 玉门市| 北安市| 临湘市| 犍为县| 榕江县| 屯昌县| 云和县| 高密市| 南部县| 自治县| 洛浦县| 沙河市| 崇礼县| 罗城| 论坛|