良い一日、
UIの画像ボタンを別のスレッドから更新したい。以下は、メインスレッドのonCreate()メソッドで実行するコードです。
new Thread(new Runnable() {
public void run() {
ImageButton btn = (ImageButton) findViewById(R.id.connected_icon);
if (netConnection.IsConnected()) {
// Change icon to green
btn.setImageResource(R.drawable.green_small);
} else {
// Change icon to red
btn.setImageResource(R.drawable.red_small);
}
try {
// Sleep for a second before re_checking.
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
いいえ、これを実行すると、LogCatでエラーが発生し、別のスレッドからUIを更新できないと表示されます。
同じUIオブジェクトを一度に更新する複数のスレッドを取得しないように、一度これが当てはまるsoemを読んだことを覚えています。しかし、どうすればこれを達成できますか。回避策があると確信していますか?
ありがとう