写在20120428:Timer的使用

   在非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);

猜你喜欢

转载自meohao.iteye.com/blog/1913129
今日推荐