2016-10-24 21 views
0

:私は30を期待していながらアンドロイド、CountDownTimerの待ち時間

timer = new CountDownTimer(30 * 1000, 1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 
      handleOnTick(millisUntilFinished); 
     } 

     @Override 
     public void onFinish() { 
      handleOnFinish(); 
      playSound(ALERT_SECOND_FINISH); 
     } 
    }; 
    timer.start(); 
} 

private void handleOnTick(long millisUntilFinished) { 
    millisUntilFinished = millisUntilFinished/1000; 
    tvTime.setText(
      String.format(Locale.US, 
        "%d:%02d", 
        min, sec) 
    ); 
} 

handleOnTickが呼び出されたときに問題があり、millisUntilFinishedは〜29953millisUntilFinished = millisUntilFinished/1000では29に等しいです! counterの値を使用せずにこのレイテンシを処理するにはどうすればよいですか? BigdecimalRoundingを使用しましたが、それでも30000未満の値を渡します。

+0

タイマー=新しいCountDownTimer(400000、1000){// 40000ミリ秒は1000ミリ秒の合計時間である時間間隔 ます。public void onTick(ロングmillisUntilFinished){ text_timer.setTextです(400-(millisUntilFinished/1000)+ "秒")。 } public void onFinish(){ } } .start(); このような試してみてください – Gattsu

答えて

1

はこれを試してみてください:millisUntilFinished = Math.round(millisUntilFinished/1000.0f);

関連する問題