handle message looper messagequeue

message :消息,包含消息id,以及一些处理的数据。由messagequeue统一处理。

handler:处理者,负责message的发放以及处理。

messagequeue:消息队列,用于存放handler发送过来的消息,按照fifo,并等待looper的抽取。

looper:消息泵,不断地从messagequeue中抽取message执行

thread:线程,负责调度整个消息循环,既消息循环的场所。

1、在ui线程中,系统会自动创建一个messagequeue,并会执行looper循环。但是在其余新开的线程当中需要手动去开启消息循环机制

 class LooperThread extends Thread {

                               public Handler mHandler;

                               public void run() {

                                               Looper.prepare();

                                               mHandler = new Handler() {

                                                               public void handleMessage(Message msg) {

                                                                              // process incoming messages here

                                                               }

                                               };

                                               Looper.loop();

                               }

                }


2、在一个线程中,一个looper对应一个messagequeue。但是一个looper对应许许多多的handler。但是这些handler和looper必须处于同一个线程当中。且是通过message.what来区分这个message是属于哪个handler发出来的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章