Android Handler+Looper+MessageQueue

来源:互联网 发布:hd软件 编辑:程序博客网 时间:2024/05/16 23:46
总结:
Message 表示一条消息,有包含target
MessageQueue 消息队列,FIFO
Looper 管理MessageQueue,主要从MessageQueue中获取Message,然后分发到Hander中处理
Hander 封装了发送消息和处理消息的操作
发送消息,调用MessageQueue实例将Message添加到队列中
处理消息,由Looper调用Message.target.dispatchMessage,然后处理消息.
需要注意的是
Hander在构造时,必须有Looper实例的存在,
如果用 无参数的构造函数或只有CallBack的构造函数时,在所执行的线程中,必须先创建Looper.
在主线程中不需要手动创建Looper是因为系统已经创建了
如果在其他线程做消息循环的功能,则需要调用Looper.prepare()来为当前线程创建Looper.

0 0