Я пытаюсь запланировать задачу по обновлению TextView раз в секунду.Пока у меня есть строка с комментарием после нее, закомментировано, все работает отлично.Logcat показывает что-то вроде:
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
}
}