2015年3月17日 星期二

[Android] CountDownTimer

new MyCoundDownTask(20000, 1000),從20秒倒數至1秒,progressDialog所顯示的秒數會自動更新。

// Comment
        private MyCoundDownTask mytask;
 private boolean mytaskStop = true;
        private ProgressDialog progressDialog;

 private void startCountDown() {
  progressDialog = ProgressDialog.show(context, "Processing",
    "Please wait...");
  
  mytaskStop = false;
  mytask = new MyCoundDownTask(20000, 1000);
  mytask.start();
  Log.e("startCountDown", "開始");
 }

 private void cancelCountDown() {
  mytaskStop = true;
  if (mytask != null) {
   mytask.cancel();
   mytask=null;
   Log.e("cancelCountDown", "提早結束");
  }
 }

 private class MyCoundDownTask extends CountDownTimer {

  public MyCoundDownTask(long millisInFuture, long countDownInterval) {
   super(millisInFuture, countDownInterval);
  }

  @Override
  public void onTick(long millisUntilFinished) {
   int restSec = (int) (millisUntilFinished / 1000);
   Log.e("CountDownTimer", "剩下秒數:" + restSec);   
   
   progressDialog.setMessage("Please wait for:"
     + (millisUntilFinished / 1000) + " sec");

  }

  @Override
  public void onFinish() {
   mytaskStop = true;
          if (progressDialog != null) {
        progressDialog.dismiss();
          }
   Log.e("CountDownTimer", "時間到");

  }
 }

沒有留言:

張貼留言