Android异步消息处理机制

来源:互联网 发布:java socket编程通信 编辑:程序博客网 时间:2024/04/26 05:22

Android中的异步消息处理由四个部分组成

1.Message

Message是在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同的线程之间交换数据,如Message的what字段,和arg1,arg2来携带一些整型的数据,使用obj字段携带一个Object对象。

2.Handler

Handler是处理者的意思,主要用于发送和处理消息。发送信息一般使用Handler的sendMessage()方法,发出的消息经过一系列辗转处理后,最终会传递到Handler的handleMessage()方法中。

3.MessageQueue

MessageQueue是消息队列的意思,它主要用于存放所有通过Handler发送的消息。这部分消息会一直存在于消息队列中,等待被处理。每个线程中只会有一个MessageQueue对象。

4.Looper

Looper是每个线程中的MessageQueue的管家,调用Looper的Loop()方法后,就会进入到一个无限的循环中,每当发现MessageQueue中存在一条消息,就会将它取出来,并传递到Handler的handleMessage()方法中。

流程图如下



总结一下流程为:首先在主线程中创建一个Handler对象,并重写handleMessage()方法。然后再子线程中需要进行UI操作时,就创建一个Message对象,并通过Handler把这条消息发送出去。之后这条消息会被添加到MessageQueue的队列等待被处理,而Looper则会一直尝试从MessageQueue中取出这条待处理的信息,最后发回给Handler的HandleMessage()方法中。

由于Handler是在主线程中创建的,所以handleMessage()方法也会在主线程中运行,这样就可以放心进行UI操作了



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机膜进气泡怎么办 贴的手机膜翘角怎么办 全屏膜出现气泡怎么办 手机膜的气泡怎么办 透明手机壳气泡怎么办 钢化膜边缘有气泡怎么办 贴钢化膜边缘有气泡怎么办 钢化膜边上有泡泡怎么办 贴钢化膜周边有气泡怎么办 钢化膜里面有气泡怎么办 手机保护膜破了怎么办 手机触摸屏没反应怎么办 苹果手机触屏坏了怎么办 手机边缘有气泡怎么办 手机膜有空气怎么办 电脑膜有气泡怎么办 汽车贴膜起泡怎么办 汽车玻璃膜用久了起泡怎么办 车窗玻璃膜起泡怎么办 新车贴膜气泡怎么办 贴手机钢化膜有灰尘怎么办 戒指砖石掉了怎么办 寄手机没有包装怎么办 手机背面有划痕怎么办 oopo手机声音小怎么办 手机屏幕被划了怎么办 oppo手机组装屏卡顿怎么办 金立手机卡顿怎么办 vivo手机有点卡怎么办 oppo手机有点卡怎么办 mx6指纹不匹配怎么办 小米手机cpu太高好烫怎么办 魅族mx6卡顿怎么办 魅族mx5反应慢怎么办 魅族玩王者荣耀卡怎么办 魅族pro7信号差怎么办 魅族手机信号不好怎么办 魅族信号不行怎么办 魅族e4g信号弱怎么办 魅族u204g信号差怎么办 魅族mx6网速慢怎么办