Код:
public class SMH extends Activity { public void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.main); TextView tv = (TextView) findViewById(R.id.tv); new CountDownTimer(10000, 2000) { public void onTick(long m) { long sec = m/1000+1; tv.append(sec+" seconds remain\n"); } public void onFinish() { tv.append("Done!"); } }.start(); }
Вывод:
10 секунд остаются
Осталось 8 секунд Осталось 6 секунд Осталось 4 секунды Готово!
Проблема:
Как мне показать, что "осталось 2 секунды"? Прошло время действительно 10 секунд, но последний onTick() никогда не происходит. Если я изменю второй параметр от 2000 до 1000, то это будет выход:
Осталось 10 секунд
Осталось 9 секунд
Осталось 8 секунд
Осталось 7 секунд
Осталось 6 секунд
Осталось 5 секунд
Осталось 4 секунды
Осталось 3 секунды
Осталось 2 секунды
Готово!
Итак, вы видите, что это пропускает последний вызов onTick(). И, кстати, XML файл в основном представляет собой файл main.xml по умолчанию, а TextView назначил идентификатор tv, а текст - "".