Handler,Looper以及HandlerThread的解析

本文详细介绍了Android中的Handler、Looper和HandlerThread的工作原理及其相互关系。Handler用于向消息队列添加消息,Looper负责从队列中取出并处理消息,而HandlerThread则为Looper提供了一个安全的线程环境,避免了主线程同步问题。通过分析源码,阐述了它们在Android消息机制中的核心作用。
摘要由CSDN通过智能技术生成

Handler,Looper以及HandlerThread的解析                                                        

1.前言


之前在工作过程中,都是以写笔记的形式,记录一些开发中遇到的问题,以及平时学习的心德和成果。后来发现,写给自己看的笔记大多过于简洁,或者排版不雅观,导致再次去复习巩固的时候,可阅读性较差。也没法和大家一起共享和探讨到我写的内容,所以决定用订阅号的形式去改进一下自己的学习记录的方式,博客以及GitHub也会相应同步。希望大家多多支持。今天要分析的是在开发中或是在面试中非常常用也非常重要的Handler.以及和它相关的Looper,它俩的关系,以及HandlerThread的分析。

2.概述


就应用程序而言,Android系统中的Java的应用程序和其他系统上相同,都是靠消息驱动来工作的,它们大致的工作原理如下:

  1. 有一个消息队列,可以往这个消息队列中投递消息。

  2. 有一个消息循环,不断从消息队列中取出消息,然后处理。

我们可以用下面这个图来展示这个工作过程:

从图中可以看出:

1.事件源把待处理的消息加入到消息队列中,一般是加至队列尾部,一些优先级高的消息也可以加至队列头,事件源提交的消息可以是按键,触摸屏等物理事件产生的消息,也可以是系统或应用程序本身发出的请求消息。

2.处理线程不断从消息队列头中取出消息并处理,事件源可以把优先级高的消息放到队列头,这样,优先级高的消息就会首先被处理。

在Android系统中,这些工作主要就是由Looper和Handler来实现的。

3.Looper分析


首先我们先看一下Looper的源码:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值