一、什么是handler?
注:线程分为主线程(主线程又叫UI线程,只能有一个主线程)和子线程(可以有多个)Handler只能在主线程里运行
handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,我们可以发消息,也可以通过它 处理消息。

 二、为什么要用Handle?

因为android在设计的时候就封装了一套消息创建、传递、处理。如果不遵循就不能更新UI信息,就会报出异常(所谓的异步消息处理)
三、 Handler的工作原理?
Handler的工作原理是Handler发送消息给MessageQuee给形成Handle MessageQuee再由Handle MessageQuee传递消息给Looper(一个对象)最后由Looper递交给 Handler处理(一个Handler里面必须要有一个Looper)

Handler、Looper、MessageQueen、Message的关系
Message: Handler接收和处理的消息对象

MessageQueen: 存储消息对象的队列

Looper: 负责读取MessageQueen中的消息,读到消息之后就把消息交给Handler去处理。

Handler:发送消息和处理消息

四、什么是Message Quee
Message Quee就是存储消息对象的队列(消息来自于Message)

五、Handler怎么用
Handler主要有发送消息和处理消息两大作用
Handler发送消息给Message而Message再由 MessageQueen进行消息的存储,接着由Looper负责读取 MessageQueen中的消息,最后由Handler处理消息。

总结:
Looper的作用:每个线程只有一个Looper,他负责管理MessageQueue,会不断的从MessageQueue取出消息,分发给对象 的handler

MessageQueue的作用:由Looper管理,而MessageQueue则采用先进的方法来管理Message!

Handler的作用:它把消息发送给Looper管理的MessageQueue,并负责处理Looper分发给他的消息。

为什么要用Handler相关推荐

  1. 为什么UI线程中创建Handler可以不传Looper?

    一个APP程序的入口是ActivityThread的main方法,ActivityThread就是我们常说的主线程或UI线程,事实上它并不是一个线程,而是主线程操作的管理者. public stati ...

  2. Android中Handler消息机制

    作用:跨线程通信. 应用:AsyncTask.retrofit都对Handler进行了封装. 四要素:Message.MessageQueue.Looper.Handler Message简介: 线程 ...

  3. Python:urllib2模块Handler处理器 和 自定义Opener

    Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...

  4. Android Handler sendMessage和 sendMessageDelayed的使用

    sendMessage :立即发送消息 sendMessageDelayed:指定多少毫秒后发送消息. 其实常用的还有2个 sendEmptyMessage 发送空消息,  一般自己想把某种操作放到子 ...

  5. Handler 实现的一个循环操作

    这个使用Handler 实现的一个循环操作还是比较简单的,下面就直接给出demo了 一个间隔5s 弹一次Toast 的demo 如下 public class MainActivity extends ...

  6. Handler 实现的一个延时操作

    今天回顾下handler 记录一个延时的demo 使用 postDelayed 主要代码如下: public class MainActivity extends AppCompatActivity ...

  7. Android 实现一个验证码倒计时(Handler postDelayed 实现验证码倒计时)

    直接看代码吧,很简单 public class MainActivity extends AppCompatActivity {private TextView code;private Handle ...

  8. Android Handler sendEmptyMessageDelayed 和 sendEmptyMessage 的使用

    sendEmptyMessage 发送空消息 sendEmptyMessageDelayed 指定多少毫秒后发送空消息 常用的还有2个如下 sendMessage :立即发送消息 sendMessag ...

  9. Handler的postDelayed()关闭的方法

    关闭的方法主要使用removeCallbacks,下面举一个demo 说明 使用方法: 1,首先创建一个Handler对象 Handler handler=new Handler(); 2,然后创建一 ...

  10. Spring MVC-处理程序映射(Handler Mapping)-简单的Url处理程序映射(Simple Url Handler Mapping)示例(转载实践)...

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_simpleurlhandlermapping.htm 说明:示例基于Spring ...

最新文章

  1. VC++6.0出现no compile tool is associated with the extension.解决方法
  2. 老信贷总结:贷款催收技巧和注意事项
  3. C#将内容导出到Word到指定模板
  4. Ribbon客户端负载均衡介绍
  5. python 枚举相等判断_python中is和==的区别
  6. 迫于误解压力,RMS从自由软件基金会与MIT离职
  7. math.pow int_Java Math类static int min(int i1,int i2)与示例
  8. muyucms轻量级内容cms
  9. JS的一些时间获取和计算公用方法封装
  10. Elasticsearch 分片和副本策略
  11. springboot+mybatis事务管理
  12. 51最小系统原理图 PCB
  13. 多个category实现同一个方法调用的顺序
  14. Echarts实现以秒为单位的动态三条折线图显示
  15. u盘超级加密3000使用方法
  16. 小米java模拟器_Android沉浸式简单实现(暂未测试全部机型,根据资料修改,模拟器,小米6,,荣耀做了简单测试)...
  17. android更新软件,Android软件的自动更新
  18. 服务器微信了早上好,微信早晨好问候语句动态图片 早上好发给朋友的微信早安问候语简短...
  19. PIC18F47K42 初学篇-1
  20. 如何在Eclipse中添加Tomcat的jar包

热门文章

  1. 《爱上单片机》读后感——5年后终于了解什么是单片机
  2. 猿创征文|【实用工具tcping】ping tcping的区别,使用命令,超全超详细使用手册(建议收藏)
  3. 滤波电容值得选取-ESR
  4. 综合布线系统 (布线系统的一种)
  5. 编程珠玑--粗略估算
  6. Mr.Alright--- Android 11(R)桌面文件夹预览布局类似9宫格的实现
  7. 投资中最简单的事--阅读笔记
  8. 陕西农心邮箱服务器,农心杯朴廷桓超时疑云分析
  9. 干货满满~阿里天池目标检测保姆级教程
  10. 【武忠祥高等数学基础课笔记】定积分