Реализация CountDownTimer правильно - PullRequest
0 голосов
/ 17 марта 2012

Я сейчас занимаюсь разработкой игры для ОС Android.В нем игрок может выполнять действия.Каждое действие стоит игроку "энергии".Текущее значение энергии игроков хранится в таблице sqlite и отображается на главном экране (home.class).Когда игрок выполняет действия, энергетическая ценность будет уменьшаться.Когда энергия достигает нуля, я хочу, чтобы таймер обратного отсчета сбрасывал значение энергии до 10.

Способ, которым я реализовал это, заключается в следующем.В верхней части главного экрана, где отображаются оценки здоровья и энергии пользователей, я показал CountDownTimer.

Таймер работает.Однако, когда я нажимаю кнопку и перехожу к другому действию ... а затем возвращаюсь на главный экран, таймер перезагружается.Я знаю, что это потому, что следующий код запускается, когда я хочу вернуться на домашний экран:

Intent i = new Intent(Crime.this, Home.class); startActivity(i);

Он запускает новый класс Home.class, потому что я хочу обновить значения, отображаемые вдомашний экран после выполнения некоторых действий.

Как лучше реализовать CountDownTimer?Любая помощь будет оценена ... спасибо:)

1 Ответ

0 голосов
/ 17 марта 2012

хранит время, в которое вы хотите сбросить энергию в базе данных (по крайней мере, после того, как вы нажмете onPause) и обновите оставшееся время с помощью галочки Таким образом, вам не нужно полагаться на таймеры для завершения / перезапуска, поскольку вы всегда можете пересчитать время на основе, например, текущее системное время

...