0
В настоящее время я разрабатываю игру для Android, и в игре есть таймер для матча, который я реализовал с помощью countDownTimer. Проблема в том, что мой таймер уменьшается, как в миллисекундах, и я хотел, чтобы это было каждую секунду. Кстати, мой планшет кажется очень быстрым, но я не знаю, если это проблема. Я не знаю, что случилось с кодом, но здесь это:CountdownTimer не ждет 1 секунду?
this.timerFimDeJogo = new CountDownTimer(mSecondsLeft * 1000, 1000) {
public void onTick(long millisUntilFinished) {
--mSecondsLeft;
if(mSecondsLeft == 10)
{
//pouco tempo para acabar? add animação no timer!
final Animation animScale = AnimationUtils.loadAnimation(TelaModoCompeticao.this, R.anim.anim_scale_clock);
TextView viewTimer = (TextView) findViewById(R.id.countdown);
viewTimer.setTextColor(Color.RED);
viewTimer.startAnimation(animScale);
}
String tempoAtual = String.format("%02d:%02d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))
);
// update countdown
((TextView) findViewById(R.id.countdown)).setText(tempoAtual);
}
public void onFinish() {
if(jogoJahTerminou == false)
{
// finish game
mandarMensagemMultiplayer("terminouJogo;");
ProgressDialog barraProgressoFinalTerminouJogo = ProgressDialog.show(TelaModoCompeticao.this, getResources().getString(R.string.aviso_tempo_acaboou), getResources().getString(R.string.por_favor_aguarde));
TerminaPartidaTask taskTerminaPartida = new TerminaPartidaTask(barraProgressoFinalTerminouJogo, TelaModoCompeticao.this);
taskTerminaPartida.execute("");
}
}
}.start();
Я не совсем понимаю вашу проблему. вы говорите, что onTicks не происходят в нужное время? –
Если его тикание каждые миллисекунды умножает значение, которое вы даете ему на 1000. – MeetTitan