猜猜我有一个 TextView 我想在某些情况下更新它。我希望有一个线程每隔一两秒检查一次情况并在必要时更新 TextView 的文本。任何想法?
问问题
4356 次
3 回答
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();
}
}
于 2013-02-03T01:50:15.037 回答
3
您可以在 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 线程报告的工作,您还可以发送短信
于 2012-04-04T12:50:05.600 回答
1
您必须使用处理程序从另一个线程更新视图。使用 postDelayed 您可以设置延迟。见文档:
于 2012-04-04T12:46:19.367 回答