Handler相关面试题

1.Handler的作用
a:在非UI线程更新UI
b:发送延迟消息

2.为什么Android设计只能ui线程更新ui?
a:解决多线程并发问题
b:提高界面更新的性能问题
c:架构设计的简单

3.Handler相关的异常
a:只有主线程才能更新ui
解决办法:
向主线程发送消息,在主线程的handleMessage方法里面更新UI
b:在子线程中创建Handler对象的前提是要调用Looper.prepare()方法,主线程里面默认调用了prepare方法
解决办法:

4.Handler,Looper,MessageQueue之间的关系
a:Handler封装了消息的发送,主要负责发送和处理消息
b:Looper内部包含一个消息队列,所有的Handler的消息都走向这个队列,loop方法是一个死循环,
不断的从消息队列取消息,有消息就处理,没有就阻塞
c:MessageQueue是消息队列,可以添加消息
d:Handler内部与Looper关联,也就是说在Handler内部可以找到Looper

非UI线程如何更新UI组件:
1.Activity.runOnUiThread
2.View.post
3.View.postDelayed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值