TextView があり、アプリケーションの開始から終了まで、そのテキストを乱数で継続的に更新したいとしましょう。
そのようなタスクを実行する方法は何ですか? それは時間を計る必要がありますか?(つまり、1 秒に 1 回更新するなど) Android には UI スレッドが 1 つしかなく、そのようなステートメントはそれを永久にブロックするため、while(true) を含むステートメントは使用できません。
編集:迅速かつ正確な回答をありがとう。答えを見て少し考えた後、これを達成するためのトリッキーな方法を思いつきました。そのような技術の欠点はありますか?
TextView tv;
Handler myHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView) findViewById(R.id.textView1);
myHandler=new Handler();
myHandler.post(new Nani());
}
private class Nani implements Runnable{
int i=0;
@Override
public void run() {
tv.setText(Integer.toString(i));
myHandler.post(this);
i++;
}
}
簡単に言えば、Runnable はそれ自体をキューに入れます..