1秒に1回TextViewを更新するタスクをスケジュールしようとしています。限り、私はそれの後のコメントと、行を持ってコメントアウト、すべて正常に動作します。 Logcatは次のようにいろいろ書いを示しています2番目のTextView.setText()でスケジュールされた定期的なタスクがフリーズする
Task
IN
OUT
Task
IN
OUT
...
しかし、私はstatusLabel.setTextを()コメントを外している場合、これは私が見たものである。
Task
IN
OUT
TASK
IN
これらの5つの行は、私が得るすべてです。何らかの理由で、もう一度テキストを設定しようとすると、停止するようです。
マイコード:
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