2017-02-14 3 views
0

CountDownTimerのおかげでEditTextにタイマーを設定したいと思います。 私のEditTextは数字の2と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

コードが正しく見える、私は同じPROBを持っている問題 –

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

これを動作させるにはどうすればいいですか?

関連する問題