Handler消息机制中无非都是围绕着:Handler,MessageQueue,Looper来做文章的,那么这三者的概念就首先你要清楚它是什么,为什么,怎么办.围绕这三个问题那么问题就不断的被一层一层的深入,最后也就解开了问题的谜题了,对于初学者来说Handler是一个神奇的东西,鸡肋吧,有人说我只要会用sendMessage()就好啦,其实不然
handler:生成,发送,处理消息
Message:数据载体
MessageQueue:Message的队列,FIFO
Looper:轮询器,用来轮询MessageQueue,调用Message中的数据
Android消息机制的概述
在刚刚自学android的时候,对android的消息机制相信和很多的刚入门同学一样就知道一个sendMessage()和handlerMessage();但是它的内部又是怎么去实现呢?自己在网上查了很多资料也看了很多csdn大牛的文章,但是有句话不是说嘛"书上得来终觉浅,觉知此时要躬行" ,最后决定还是要把我对android消息机制的艰(zuo)辛(si)历程记录下来.
首先要学一样东西,对这个东西的定义是最为重要的,试问你都不知道其为何物,那你还谈什么去深入呢?
要想知道你对消息机制的知识到底掌握的怎么样,只要你能回答下面的几个问题那么就算你掌握了:
1.:一个handler是不是只能对应一个looper?
2.:一个looper是不是只能对应一个handler?
3.:MessageQueue和looper是一对一对应的,looper也可以在子线程中用?
问题的答案嘛,只要你读完这篇博客你就懂了心里有答案了,到博文的最后一处作死的小编也会把答案贴出来,所以同学们不妨在阅读下文的时候,带这三个问题,我相信你会在看着看着的时候就跟我一样恍然大悟的.
在Android4.0以后不能在UI线程访问网络,子线程也不能更新UI.举个实际的例子,就拿下载东西的进度来说,下载任务是一个耗时的操作,好那么把下载任务放在子线程,如果将耗时操作放在UI线程的话会造成"卡顿&