2017-02-20 3 views
0


Я просто хочу обновить свое текстовое представление с помощью таймера обратного отсчета с 15 до 0 и используя следующий код, но он НЕ обновляет его каждую секунду и занимает около 3,4 секунды. для обновления каждый раз.имеют задержку при обновлении текстового поля каждую секунду в android

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    initGame(); 

    CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 
      tv.setText("time left : " + millisUntilFinished/1000); 
     } 

     @Override 
     public void onFinish() { 
      tv.setText("finished!"); 
     } 
    }.start(); 

} 

для instace печатает:
time left : 29 time left: 25 time left: 22

Я ценю вашу помощь.

+0

Обычно, если время, необходимое для операции, которую вы выполняете в методе 'onTick()', вы пропустите следующий. Если единственное задание, которое вы выполняете в 'onTick()', задает текст, возможно, это не так, поэтому, вероятно, ваш поток пользовательского интерфейса довольно занят. – GVillani82

+0

Постарайтесь его прокомментировать? Android studio -> вкладка [Android Monitor] -> суб-вкладка [Мониторы] -> В верхней части графика процессора находится кнопка «Трассировка метода запуска» - должна работать с отладочной сборкой. Из документов это выглядит так: 'onTick' вызывается в желаемом интервале, когда предыдущий' onTick' уже закончил, поэтому ваш код должен работать (вы можете попробовать его только с одним текстовым видом без каких-либо других действий, чтобы увидеть, работает ли он, но поскольку он выглядит так же, как официальный пример, он, вероятно, работает). – Ped7g

+0

@ GVillani82 за исключением того, что textview у меня 16 изображений. это задержка? делает этот способ визуализации ui снова? если да, то есть способ частично отобразить ui? Я довольно новичок в программировании на Android! – Power

ответ

0

Используйте эту библиотеку

FadingTextView TextView, который автоматически изменяет его содержание каждые несколько секунд

Вам не нужно писать дополнительный код.

Смежные вопросы