Handler 消息传递机制
出于性能优化考虑:Android的UI操作并不是线程安全的,这意味着如果有多个线程并发操作UI组件,则可能导致线程安全问题~比如ANR异常,为了解决这个问题,Android制订了一个简单的规则,只允许UI线程(主线程)修改Android里面的UI组件。
Handler类主要有两个作用:
1.在新启动的线程中发送消息。
2.在主线程中获取,处理消息。
为了更好理解Handler的工作原理,下面介绍一下与Handler一起工作的几个组件。
MessageQueue:由Looper负责管理,它采用先进先出的方式来管理Message。
Looper:每个线程只有一个Looper,它负责管理MessageQueue,会不断地从MessageQueue中取出消息,并将消息分给对应的Handler处理。
Handler:它能把消息发给Looper管理的MessageQueue,并负责处理Looper分给它的消息。