简单说一下hander机制,这个Android基本必问的一道题!!!
面试过几个应聘者回答的都不是很好!
分条清晰回答,
1.Hander长什么样子,当然就是说它是一个什么,
2.Hander是干啥用的
3.列举一些应用场景
4.再加上形象的比喻分析其原理
平时给教的几个学生整天分析Java和Android知识,就是初学的理解不是很深刻么,就给他各种解释,常常比喻成现实中的实物,然后就很形象深刻的记住了。把一个很难的知识点尽量通俗化,白居易写诗让老太太都能看懂,这依然是好诗,易于传播,易于记忆就是好的么。讲着讲着就想起了初中课文上一篇说明文上列举的说明方法,只记得几个,举例子,下定义什么的后来百度查了一下。
举列子、作比较,下定义,作诠释,打比方(明喻,暗喻,借喻)、摹状貌,引资料,分类别,列数字,画图表,等等。
编程语言比较抽象,能把抽象的问题具体化,形象化,他们学起来就不害怕了。
当多个线程同时发送消息的时候,你也扔过来一箱,我也扔过来一箱,就是发送的有很多人,而处理的却要有条不紊依次去处理,所以这些货物要放在一个队列里面 Queue 然后呢由Looper 就是传送带,传送带一个死循环,一直看队列里面有消息没有,有了就网上运输,而Hander相当于招的快递处理员,及进行搬运发送邮件,也写大字处理邮件,然后分给各个货车,从而实现有序处理。
代码贴的比较少,但是我相信有点Android基础的仔细想想这个场景,一拍脑袋,恍然大悟。什么高深的Handler机制,也不过是快递传送带处理而已,原理相似。仔细理解之后就会很深刻。
那么来回答上面提出的四个问题!
什么是Handler呢,Handler他不是接口,也不是抽象类,是一个实实在在的实体里。
有啥功能?
1.发送消息sendMessage。
2.处理消息handlerMessage。
其他还有暂不关心这是最核心的两个功能
作用呢,就是解决主线程MainThread和子线程new Thread()之间的通信,
主线程不能执行耗时操作,超五秒就会ANR异常,就是手机无响应,所以耗时操作就放在子线程里面,
在子线程把大枣加工,夹核桃夹仁,或者花生,复杂的耗时处理,都扔子线程,处理完了。就利用Handler
即员工贴贴大字,放到车上这些不是很耗时的操作。
3.应用场景,就是
另一个账号 http://blog.csdn.net/rememberthedream/article/details/50505193