在非UI线程中是不允许执行UI操作的,一般在非UI线程中可以采用Timer和handler来完成UI更新,或者直接用handler的postDelayed(),或者用AsyncTask(这里不展开)。其代码片段如下:
Handler mHandler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_TIMER:
setTitle("Timer");
//UI更新操作
break;
}
super.handleMessage(msg);
}};
Timer timer = new Timer().schedule(new TimerTask(){
public void run() {
Message message = new Message();
message.what = MSG_TIMER;
mHandler.sendMessage(message);
}
},1000);
也可以直接用handler的postDelayed()来发消息通知Handler来更新UI
mHandler.postDelayed(new Runnable(){
@overrid
public void run(){
Message message = new Message();
message.what = MSG_TIMER;
mHandler.sendMessage(message);
}
},1000);
写在20120428:Timer的使用
猜你喜欢
转载自meohao.iteye.com/blog/1913129
今日推荐
周排行