1. 如何下载Android源代码

2. ThreadLocal初步介绍

3. Handler相关代码执行流程

1. 如何下载Android源代码

  SDK Manager下载, 下图所示

  下载完之后在文件夹

  

2. ThreadLocal初步介绍

  线程本地变量
  

  代码回顾

 1 <pre>
 2   *  class LooperThread extends Thread {
 3   *      public Handler mHandler;
 4   *
 5   *      public void run() {
 6   *          Looper.prepare();
 7   *
 8   *          mHandler = new Handler() {
 9   *              public void handleMessage(Message msg) {
10   *                  // process incoming messages here
11   *              }
12   *          };
13   *
14   *          Looper.loop();
15   *      }
16   *  }</pre>

  Looper、Thread、Handler一一对应, 一个Looper存在于一个Thread中

3. Handler相关代码执行流程

  

  查看相关方法的具体代码, 可知

 1 class LooperThread extends Thread {
 2        public Handler mHandler;
 3        public void run() {
 4            Looper.prepare(); //生成Looper对象, 并把Looper与当前线程对象形成键值对, 存放在ThreadLocald 当中
 5            mHandler = new Handler() //生成Handler对象, 调用Loop的MyLooper方法,根据键得到与Handler对应的Looper对象取出来(从ThreadLocal中取出)
 6            {
 7                    //实际上,Looper和Handler之间是通过ThreadLocal建立一一对应的连接
 8                    public void handleMessage(Message msg) {
 9                    // process incoming messages here
10                }
11            };
12            Looper.loop(); //循环从消息队列往外读数据
13        }
14  }        

转载于:https://www.cnblogs.com/iMirror/p/3962461.html

什么是Handler(二)相关推荐

  1. 关于Handler二三事(下)

    消息的注册到业务的实现 从接触呼叫业务的第一天起,我就一直琢磨代码里成群结队的registerXXXX方法跟notifyXXXX方法究竟是个怎么关系. 一个消息(Message)从注册到被处理(han ...

  2. 【Android 异步操作】HandlerThread 示例 ( 初始化并执行 | 获取Looper | 获取 Handler | 获取消息队列 | 设置空闲队列 | 代码示例 )

    文章目录 一.HandlerThread 初始化 二.HandlerThread 获取Looper 三.HandlerThread 获取消息队列 MessageQueue 四.HandlerThrea ...

  3. Netty实战 IM即时通讯系统(十二)构建客户端与服务端pipeline

    Netty实战 IM即时通讯系统(十二)构建客户端与服务端pipeline 零. 目录 IM系统简介 Netty 简介 Netty 环境配置 服务端启动流程 客户端启动流程 实战: 客户端和服务端双向 ...

  4. 安卓基础学习之handler

    安卓基础学习之handler 文章目录 安卓基础学习之handler 前言 一.Handler 二.handlder的使用流程讲解 1.简单的示例 2.handler的一些方法 总结 前言 记录安卓开 ...

  5. Handler的理解

    参考 "酱爆大头菜":Handler就好比你开了个餐馆 - 掘金 CSDN handler一 本文就以生活点餐的例子再结合源码原理进行解析.希望对你有一点帮助. 来,咱们进入角色. ...

  6. 【ES6】Proxy对象

    [ES6]Proxy对象 一.Proxy的基本用法 二.Proxy示例的方法 1)get() 2)set() 3)apply() 查看更多ES6教学文章: 参考文献 引言:ES6规范里面新增了Prox ...

  7. 第二篇:白话tornado源码之待请求阶段

    上篇<白话tornado源码之一个脚本引发的血案>用上帝视角多整个框架做了一个概述,同时也看清了web框架的的本质,下面我们从tornado程序的起始来分析其源码. 概述 上图是torna ...

  8. 【Netty】Netty 核心组件 ( ChannelPipeline 中的 ChannelHandlerContext 双向链表分析 )

    文章目录 一. 代码示例分析 二. ChannelHandlerContext 双向链表类型 三. Pipeline / ChannelPipeline 管道内双向链表分析 四. 数据入站与出站 接上 ...

  9. 我也来说说js的事件机制

    原文链接:http://www.w3cfuns.com/notes/17398/8062de2558ef495ce6cb7679f940ae5c.html 学js,不懂事件机制,基本可以说学了js,就 ...

最新文章

  1. CV业务落地用Transformer吗?
  2. [转载] New Concept English 1——Lesson 14 What colour's your…?
  3. 人工智障学习笔记——机器学习(6)协同过滤
  4. 为什么打完篮球后手接触篮球杆会有触电感?
  5. 比较ipv6有状态与无状态地址分配工作特点_IPv6环境获取IPV6地址,无状态地址分配,一分钟了解下...
  6. tensorflow基础(2)-tf.argmax和axis
  7. mysql不能删除外键吗,为什么mysql不允许删除外键?
  8. python语言的主网址-python调用浏览器,打开一个网址
  9. 【渝粤题库】陕西师范大学152201 公共行政学
  10. Delphi7 在Windows 7上无法打开帮助文档
  11. 微信文章互阅python脚本,一天可刷120分
  12. 索尼笔记本笔记本计算机在哪里设置,索尼vaio笔记本怎么进bios设置|索尼笔记本进bios按什么键...
  13. scratch打棒球游戏 电子学会图形化编程scratch等级考试四级真题和答案解析2019-12
  14. 四分位数算法记录(含java代码实现)
  15. 脱壳进阶篇——IAT修复与解密
  16. markdown生成目录
  17. Java课程设计报告--绩效考核信息管理系统
  18. 李学斌:论复杂系统中的应用间协作V3
  19. Room cannot verify the data integrity. Looks like you‘ve changed schema but forgot to update the ve
  20. 技术水平真的很重要!技术详细介绍

热门文章

  1. 玻璃体混浊当前的治疗方案汇总
  2. Cannot resolve field [content], input field list:[contents].
  3. mapPartition方法与map方法的区别(转载)
  4. 批量绘制train和test关于特征上的差异
  5. Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
  6. Qt5使用windeployqt后 exe文件还是无法执行 无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll
  7. pytorch——torch.backends.cudnn.benchmark = True
  8. 五分钟用vue实现一个五星打分效果
  9. 开源大数据周刊-第102期
  10. BackTrack5汉化后打开Txt乱码解决方法