Я пытаюсь запланировать задачу по обновлению TextView один раз в секунду. Пока у меня есть строка, с комментарием после нее, закомментировано, все работает нормально. Logcat показывает, как коснуться:Запланированная периодическая задача зависает во второй TextView.setText()
Task
IN
OUT
Task
IN
OUT
...
Но если я раскомментировать statusLabel.setText(), это то, что я вижу:
Task
IN
OUT
TASK
IN
Эти пять строк все я получаю. По какой-то причине он, кажется, останавливается, когда он пытается снова установить текст во второй раз.
Мой код:
public class MyActivity extends Activity {
TextView statusLabel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.control);
statusLabel = (TextView) findViewById(R.id.statusLabel);
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(
new Runnable() {
public void run() {
Log.d("Datalogger","Task");
updateStatus();
}
}, 0, 1, TimeUnit.SECONDS);
}
private void updateStatus() {
Log.d("Datalogger","IN");
statusLabel.setText("X"); // !! If I comment out this line,
Log.d("Datalogger","OUT"); // everything works
}
}
Я предполагаю, что там могла быть ошибка ... Поскольку журнал был наводнен ненужным материалом, я отфильтровал все, кроме моих собственных сообщений :) Я думаю, я должен спать уже ... – varesa