android Handler浅谈
2010-05-31 14:21:00 来源:WEB开发网myBounceView.invalidate();
break;
}
super.handleMessage(msg);
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.myBounceView = new BounceView(this);
this.setContentView(this.myBounceView);
new Thread(new myThread()).start();
}
class myThread implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
[color=White][color=White][color=Red] Message message = new Message();
message.what = TestHandler.GUIUpdateIDENTIFIER;
TestHandler.this.myHandler.sendMessage(message); [/color][/color][/color]
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
}
红色这几句很诡异,就是用来给Ui 主线程发消息. UI主线程据说有消息队列,呵呵.Handler在哪个现成创建的.默认就和哪个线程的Looper 绑定. 就可以往哪个线程的消息队列丢消息.
我现在还不太明白的是. Handler丢了消息, 在绑定的线程中 为什么Handler又能处理消息呢?
Handler Looper 关系还要进一步研究.
主要是为了定时,或中断,或通知更新UI. 又不使UI反应停止或太慢,用多线程发消息办法很不错.
更多精彩
赞助商链接