Handler,Message和Looper

一,总体描述

整个流程就相当于车队

1,Message

Message就是消息,传递的数据分成多个组,由消息来一部分一部分的传送。相当于车子,运载货物(消息、数据)。

它的几个属性不难理解,获取Message对象的时候不要new构造方法,用obtain,因为本身队列里面有message,没有的话会自动创建。里面message的值为10,就 是说会循环利用,looper起作用。或者Handler里面有相应的方法获取Message对象

2,MessageQueue

由Looper管理,可以想象下传送的消息有很多,要确保它们之间的顺序,因此要用MessageQueue(队列)来管理,各个消息按照顺序排列,先进先出,那么就不会 数据错乱。

3,Handler

负责发送,处理与线程消息队列相关的message或者Runnable objects。每个Handler跟线程以及MessageQueue是一一对应的,创建的时候回自动关联。Handler 发送消息或者Runnable对象给队列,或者处理Looper从队列中取出的消息或者Runnable对象。

两个主要用法:

1,调度message跟Runnable objects,将来处理。

2,发送message或者Runnable objects给别的线程。可即时发送也可以延时之后发送。

Handler的方法:都不太难理解,很多方法都是参数的变化而已,意思还是一样的。参数的不同只是把原来的变量直接就放到参数哪里而已。

注意其中post类型的方法都是用于Runnable 对象的发送处理的,而send类型用于message发送处理。

Handler.Callback:里面包含handleMessage方法,必须实现的。

4,Runnable Objects

定义的一组操作,以消息的形式发送给另外一个线程,接受到这个消息的线程负责处理该组操作。

5,Looper

执行消息的循环。每个线程只有一个Looper,它负责管理MessageQueue,从MessageQueue中去粗消息并且交给Handler处理。

线程本身是没有循环的,要通过Looper实现。用静态方法prepare()创建Looper对象,在这里会跟线程对应。之后调用静态方法loop()方法来启动,可以调用 quit()来停止。

二,实现

1,UI主线程默认有一个Looper,但是在子线程中要先创建Looper,注意Lopper对象的创建方法。

2,注意Message对象的获取


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值