Handler,Looper,MessageQueue,android中的消息机制以及源码分析(一)

作为进阶内容,简单用法将不会做介绍~刚接触的同学请自行查找相关的概念和使用方式~在未来更新新手入门教程的过程中,会加入这些基本用法。还请见谅~么么哒~


本篇主要是简单介绍消息机制模型和各组件的了解,源码分析请见Handler,Looper,MessageQueue,android中的消息机制以及源码分析(二)


在android开发中,经常会使用到handler作为线程之间通信的工具。例如:通过handler在子线程中更新UI线程等。本篇将会简单介绍Handler,Looper,MessageQueue互相之间的关系。在了解关系后,再看源码理解起来会更容易,对消息机制的的也会有初步的认识。



(画图无能。。。借用别人的一张图 = =)


从这张图里我们能看出什么?


0. Message:消息。

1. Handler:消息处理者,负责发送和处理消息。handler工作在它所创建的线程内。例如:在主线程创建Handler,那么该handler将可以完成包括更新UI在内的主线程可以进行的操作。

2. MessageQueue:消息队列。

3. Looper:轮巡器,负责轮巡查看队列中的消息,取出消息并分发给handler处理。Looper和MessageQueue是一一对应的,即一个Looper只能有一个MessageQueue,反之亦然。一个Looper可以对应多个Handler。

4. Thread:既然作为线程间通信,handler和looper所在线程可以是不同的(通常情况下都处在不同的线程当中)。一个Thread只能有一个Looper。试想一下,如果一个线程中有很多looper存在,而一个looper对应了一个MessageQueue,这样当有一个Message被放入该线程的消息队列时,放在哪一个消息队列中好呢?这会带来一些列的问题,所以一个线程中只有一个Looper存在是比较理想的。至于如何实现的,我们可以看下一篇文章。


一个完整的消息过程应该是这样的:


looper所在的线程中,handler发送一条消息并添加到消息队列中,looper轮巡查看是否有消息产生,有的话把队列里最上面的消息分发给handler,由handler中实现的handleMessage方法或者调用callback在handler绑定的线程中处理该消息。

简单的介绍就到这里~详细的内容会在后面的章节中跟大家分享~

如有错误,欢迎指正~




-----------------割-------------------


昨天豌豆荚的电面= =不是很理想。最近有点浮躁,趁这个被打击的机会把以前看的东西理一理。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值