/ / timer odliczający w systemie Android - java, android, countdowntimer

minutnik w android - java, android, countdowntimer

Mam tabelę z pewnymi wartościami i chcę to zrobićaktualizuj UI (wartości) co 10 sekund. i chcę pokazać użytkownikowi zegar odliczający, aby wiedzieć, co się stanie ... ale się zawiesza. kod, którego użyłem, jest pokazany poniżej:

tv2_r7= (TextView) this.findViewById(R.id.textView2_r7);

final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
int i = 10;
public void run() {
tv2_r7.setText(String.valueOf(i));
i--;
if (i< 0)
timer.cancel();
}
}, 0, 1000);

działa dobrze w prostej aplikacji java, kiedy mam System.out.println(i--); zamiast tv2_r7.setText(String.valueOf(i)); i--;

Odpowiedzi:

2 dla odpowiedzi № 1

Zaktualizowałeś wartość UI w zegarze, która jest nieprawidłowa. Musisz użyć

runOnUIThread

Metoda tam.

tv2_r7 = (TextView) this.findViewById(R.id.textView2_r7);

final Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask()
{
int i = 10;

public void run()
{
runOnUIThread(new Runnable()
{

@Override
public void run()
{
tv2_r7.setText(String.valueOf(i));

}
});

i--;
if (i < 0)
timer.cancel();
}
}, 0, 1000);
}