简介
在Android开发中,经常会遇到需要在不同线程之间切换的需要,比如网络请求(Android为了防止出现ANR异常,所以规定在Main Thread中不能进行网络请求,且最好不要进行耗时操作),子线程通信等等。此外,Android在设计之初,为了安全和用户体验考虑,规定了只允许在Main Thread里面进行UI更新,而不能在子线程里面进行,否则会抛出异常。这个时候,就需要用到Android的消息传递机制 — Handler。
在Android中,Handler消息传递机制主要依赖于Handler,Message,MessageQueue,Looper。其中:
- Handler负责消息的发送与接收处理。
- Message负责消息的封装,他本身可以看做消息的载体。
- MessageQueue:是一个消息队列,所有需要发送的消息用类似于链表的形式进行存储,并且依据于消息消费的时间为标志确定存储位置。
- Looper:进行消息循环与消息分发。