猜猜我有一个TextView我想在某些情况下更新它。我希望有一个线程,每隔一两秒检查一下情况,并在必要时更新TextView的文本。 有什么想法吗?
答案 0 :(得分:4)
我这样做:
public class MyClass {
private Handler hUpdate;
private Runnable rUpdate;
public MyClass() { // Constructor
hUpdate = new Handler();
rUpdate = new Runnable() {
// Do your GUI updates here
};
Thread tUpdate = new Thread() {
public void run() {
while(true) {
hUpdate.post(rUpdate);
sleep(500);
}
}
}
tUpdate.start();
}
}
答案 1 :(得分:2)
您可以在GUI中使用Handler:
Handler hnd = new Handler() {
public void handleMessage(Message msg) {
if ( msg.what == 101 ) {
//update textview
}
}
}
将hnd传递给你的线程,并在你的线程中执行:
Message m = new Message();
m.what = 101;
hnd.sendMessage(m);
这假设在你的单独线程中你正在做一些需要向GUI线程报告的工作,你也可以发送短信
答案 2 :(得分:1)
您必须使用处理程序来更新另一个线程的视图。使用postDelayed,您可以设置延迟。见文档: