Android-таймер и поток пользовательского интерфейса

Я раздуваю TableRow следующим образом:

final TableRow tr1 = (TableRow)LayoutInflater.from(this).inflate(R.layout.attrib_row_survey, null);
tr1.setOnTouchListener(this);
tl1.addView(tr1);

Вот как я делаю свой счетчик:

new CountDownTimer(30000, 1000) {

                 public void onTick(long millisUntilFinished) {
                     ((TextView)tr1.findViewById(R.id.textView2)).setText("Seconds Remaining: " + millisUntilFinished / 1000);
                 }

                 public void onFinish() {
                     ((TextView)tr1.findViewById(R.id.textView2)).setText("DONE");
                 }
              }.start();

Проблема в том, что когда я запускаю этот таймер и показываю его в строке, пользовательский интерфейс работает очень медленно, а таймер отстает. Когда я делаю view.setBackGroundColor(Color.BLACK) в onTouchListener() и нажимаю на него, он отстает.


person Sohel Mansuri    schedule 12.12.2012    source источник
comment
Одним из улучшений является сохранение ссылки на textView2 вместо многократного вызова findViewById(). Однако CountDownTimer вряд ли создаст какое-либо заметное отставание, что еще вы делаете?   -  person Sam    schedule 12.12.2012
comment
Могу ли я заинтересовать вас в моем ответе здесь   -  person st0le    schedule 12.12.2012


Ответы (1)


person    schedule
comment
Итак, как мне остановить таймер обратного отсчета от onTick, если TableRow onTouchListener активирован? Он отстает каждый раз, когда я касаюсь TableRow. - person Sohel Mansuri; 12.12.2012