Я пытаюсь сделать часы, используя TextView
:)
Кто-то здесь сказал мне, что я не могу использовать обычные потоки для изменения пользовательского интерфейса, но Handler
или AsyncTask
. Мне удалось заставить его работать несколько дней назад, но это не было последовательным потоком.
Теперь мне нужен согласованный поток, который всегда меняет текст моего Textview
. Я пытался использовать это, но не сработало, любая помощь?
private void startClock() {
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
while (true) {
final long millis = System.currentTimeMillis() - MainActivity.startedAt;
clock.setText("" + millis);
runOnUiThread (new Runnable() {
@Override
public void run() {
clock.setText("" + millis);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}, 2000);
}
Timer
? Сделал бы вашу жизнь намного проще. См. здесь: stackoverflow.com/questions/15317600/ - person Tyler MacDonell   schedule 10.03.2013Timer
функцию обратного вызова, называемуюTimerTask
, и задаете ей регулярный интервал для выполненияTimerTask
. Никаких петель не требуется. Пожалуйста, смотрите вопрос, который я связал для получения более подробной информации... - person Tyler MacDonell   schedule 10.03.2013