本文主要是介绍Android Handler+Looper+MessageQueue,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
总结:
Message 表示一条消息,有包含target
MessageQueue 消息队列,FIFO
Looper 管理MessageQueue,主要从MessageQueue中获取Message,然后分发到Hander中处理
Hander 封装了发送消息和处理消息的操作
发送消息,调用MessageQueue实例将Message添加到队列中
处理消息,由Looper调用Message.target.dispatchMessage,然后处理消息.
处理消息,由Looper调用Message.target.dispatchMessage,然后处理消息.
需要注意的是
Hander在构造时,必须有Looper实例的存在,
如果用 无参数的构造函数或只有CallBack的构造函数时,在所执行的线程中,必须先创建Looper.
在主线程中不需要手动创建Looper是因为系统已经创建了
Hander在构造时,必须有Looper实例的存在,
如果用 无参数的构造函数或只有CallBack的构造函数时,在所执行的线程中,必须先创建Looper.
在主线程中不需要手动创建Looper是因为系统已经创建了
如果在其他线程做消息循环的功能,则需要调用Looper.prepare()来为当前线程创建Looper.
这篇关于Android Handler+Looper+MessageQueue的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!