不可描述的Handler -_-

2017-10-18  本文已影响0人  markchan
一. Handler是什么

Handler是Android给开发者提供用来用来更新UI的一套机制, 也是一套消息处理机制, 开发者可以发送消息, 也可以通过它处理消息

二. 为什么要用Handler

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

三. 怎么使用Handler
sendMessage(); 
sengMessageDelayed(); 
post(Runnable); 
postDelayed(Runnable, long); 
四. Handler的组成
五. Handler的原理

Handler内部会跟Looper进行关联, 也就是说在Handler内部可以找到Looper, 找到Looper也就找到了MessageQueue, 在Handler中发送消息,
其实就是向MessageQueue队列中发送消息

思考: Android为什么要设计只能通过Handler机制更新UI?

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

假设一个场景: 在一个Activity当中, 有多个线程去更新UI

问题一: 更新UI时并且都没有进行加锁处理, 那么会产生什么样的问题 -- 更新界面错乱
问题二: 如果对更新UI的操作都进行加锁处理的话, 又会产生什么样的问题 -- 性能下降

基于对以上问题的考虑, Android给开发者提供了一套更新UI的机制,
我们只需遵循这样的机制就可以了; 根本不用去关心多线程的问题, 所有更新UI的操作, 都要在主线程的消息队当中去轮询处理的

总结
上一篇下一篇

猜你喜欢

热点阅读