Android-Handler机制详解,androidstudio电子书

答:Android在设计的时候,封装了一套消息创建,传递,处理机制,如果不遵循这样的机制就没法更新UI信息,就会抛出异常。

3、handler怎么用?

答:1.post(Runnable)

2.postDelayed(Runnable,long)

3.sendMessage

4sendMessageDelayed

4、Android为什么要设置只能通过Handler机制更新UI?

答:最根本的问题是解决多线程并发的问题

假设如果一个activity中,有多个线程去更新UI,并且都没有加锁机制,那么会产生什么样的问题?——更新界面混乱;

如果对更新UI 的操作都加锁处理的话会产生什么样子的问题?——性能下降

对于上述问题的考虑,Android提供了一套更新UI的机制,我们只需要遵循这样的机制就好了。

不用关心多线程的问题,更新UI的操作,都是在主线程的消息队列当中轮询处理的。

5、handler的原理是什么?

答:handler封装消息的发送(主要包含消息发送给谁)

2.Looper——消息封装的载体。(1)内部包含一个MessageQueue,所有的Handler发送的消息都走向这个消息队列;(2)Looper.Looper方法,就是一个死循环,不断地从MessageQueue取消息,如果有消息就处理消息,没有消息就阻塞。

3、MessageQueue,一个消息队列,添加消息,处理消息

4、handler内部与Looper关联,handler->Looper->MessageQueue,handler发送消息就是向MessageQueue队列发送消息。

总结:handler负责发送消息,Looper负责接收handler发送的消息,并把消息回传给handler自己。

5、handler的原理是什么?

答:1、handler封装消息的发送(主要包括消息发送给谁)

2、Looper——消息封装的载体。(1)内部包含一个MessageQueue,所有的Handler发送的消息都走向这个消息队列;(2)Looper.Looper方法,就是一个死循环,不断地从MessageQueue取消息,如果有消息就处理消息,没有消息就阻塞。

3、MessageQueue,一个消息队列,添加消息,处理消息

4、handler内部与Looper关联,handler->Looper->MessageQueue,handler发送消息就是向MessageQueue队列发送消息。

总结:handler负责发送消息,Looper负责接收handler发送的消息,并把消息回传给handler自己。

MessageQueue存储消息的容器。

6、HandlerThread的作用是什么?

答:HandlerThread thread=new HandlerThread(“handler thread”);自动含等待机制,等Looper创建好了,才创建Handler,避免出现空指针异常。

7、主线程

由于篇幅原因,这份面试宝典已经被整理成了PDF文档,有需要Android面试宝典全套完整文档的麻烦点赞+点击GitHub即可获取资料免费领取方式!

Android-Handler机制详解,androidstudio电子书_第1张图片

本文在开源项目:GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

%E8%96%AA%EF%BC%81.md),里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

你可能感兴趣的:(程序员,架构,移动开发,android)