2017-02-14 25 views
0

我想用CountDownTimer設置一個帶有定時器的EditText。 我的EditText按秒寫入數字3和2,但對於1有一個滯後時間(需要1.5到2秒)。 也許我做錯了。EditText中的CountDownTimer滯後於最後一秒

這是我的代碼:

CountDownTimer mCountDownTimer = new CountDownTimer(4000, 1000) { 
      @Override 
      public void onTick(long millisUntilFinished) { 
       txt_timer.setText(String.valueOf(millisUntilFinished/1000)); 
      } 

      @Override 
      public void onFinish() { 
       txt_timer.setText("GO"); 
      } 
     }; 
     mCountDownTimer.start(); 
+1

你的代碼看起來正確,也可能是在設備內存引起的問題 –

+0

我有相同的概率!原因是你的設備 –

+2

我有一個非常好的設備。這很奇怪......沒有其他解決方案? –

回答

0

設備中的內存導致問題。我找到了一個運行新線程的解決方案。

我要聲明int i=4;前和使用此代碼:

new Thread() { 
      public void run() { 
       while (i-- > 1) { 
        try { 
         getActivity().runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           txt_timer.setText(String.valueOf(i)); 
          } 
         }); 
         Thread.sleep(1000); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
       } 

       txt_timer.setText("GO"); 
      } 
     }.start(); 
0

這是因爲UI線程正在做的工作太多了。嘗試在UI線程本身上運行一個新線程:

runOnUiThread(new Runnable() { 
     public void run() 
     { 
      //Insert your code 
     } 
    }); 
} 

讓我知道你是否可以;讓這個工作!