Android: CountDownTimer пропускает последний onTick ()!

Код:

 открытый класс SMH расширяет Activity {

public void onCreate (Bundle b) {
super.onCreate (б);
setContentView (R.layout.main);

Текстовый просмотр tv = (TextView) findViewById (R.id.tv);

new CountDownTimer (10000, 2000) {
public void onTick (long m) {
длинная сек = м / 1000 + 1;
tv.append (sec + "осталось секунд \ n");
 }
public void onFinish () {
tv.append («Готово!»);
 }
 }.Начните();
 }

Вывод:
Осталось 10 секунд
Осталось 8 секунд
Осталось 6 секунд
Осталось 4 секунды
Выполнено!

Проблема:

Как сделать так, чтобы он отображал « Осталось 2 секунды »? Истекшее время действительно составляет 10 секунд, но последний onTick () никогда не происходит. Если я изменю второй параметр с 2000 на 1000, то это будет вывод:

Осталось 10 секунд
Осталось 9 секунд
Осталось 8 секунд
Осталось 7 секунд
Осталось 6 секунд
Осталось 5 секунд
Осталось 4 секунды
Осталось 3 секунды
Осталось 2 секунды
Выполнено!

Как видите, последний вызов onTick () пропускается. И, кстати, XML-файл - это в основном main.xml по умолчанию с TextView, которому назначен идентификатор tv , а текст установлен на "".

46
задан Jeremy D 13 January 2012 в 23:52
поделиться