我想安排一個任務來每秒更新一次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 2012-03-15 22:07:09