Handler、Looper、Message、MessageQueue

来源:互联网 发布:php语言精粹 编辑:程序博客网 时间:2024/05/16 18:12

一个线程只能对应一个Looper和一个MessageQueue

   private Looper(boolean quitAllowed) {        mQueue = new MessageQueue(quitAllowed);//传入的参数代表这个Queue是否能够被退出        mThread = Thread.currentThread();//绑定当前的线程    }

handler将message发送给 初始化它自己的 线程所对应的MessageQueue

handler在发送的message的时候,系统会将message的处理目标置为该handler。因此,哪个handler发送的消息只能有哪个handler处理


使用例子:

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();//必须调用      }  }

0 0