文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/异步
以前咱们有一篇很好的博文《Android学习笔记(三一):线程:Message和Runnable》对Handler进行了介绍。在此,咱们做进一步了解。函数
前面,咱们已经学习到主线程有一个主线程队列,对于异步处理(如Activity的UI触发、触发本地服务的startService(),以及外部进程调用Activity和广播)。异步处理以消息的方式放入主线程队列中,排队依次进行处理。学习
Handler就是将消息放入队列的机制。咱们在哪一个线程中创新handler,handler就将消息放入所在的线程,除非在建立handler对象时是指定具体的线程。一般handler在主线程建立,handler可将消息放入主线程队列中。.net
消息会带有handler参考,这个handler对象将message放入队列,当message被处理时,会经过消息所带的handler参考,触发handler对象中的回调函数进行处理。线程
经过Handler,Android对外隐藏了队列。处理步骤以下:对象
一、建立Handler对象和消息对象blog
二、handler将消息放入队列中,在此过程当中消息会记录handler的参考(即对象)队列
三、当轮到消息处理时,触发消息已记录的handler参考的回调函数进程
相关连接: 个人Android开发相关文章开发