当前位置: 首页 > news >正文

【Android面试八股文】Looper如何在子线程中创建?

文章目录

  • 一、Looper的几个重要方法
  • 二、子线程中使用Looper的方式1
  • 三、子线程中使用Looper的方式2
    • 3.1 使用HandlerThread实现
    • 3.2 HandlerThread源码解析

创建子线程的 Looper必须要通过 Looper.prepare()初始化looper,然后再通过 Looper.loop()方法让 Loop运行起来。

那么具体的细节请看下面的说明:

一、Looper的几个重要方法

首先我们要知道Looper相关的几个重要方法:

  • Looper.prepare()Looper 初始化, 同时会初始化MessageQueueLooper消息机制必须要初始化Looper
  • Looper.myLooper(): 获取当前调用线程中ThreadLocal缓存的Looper对象。
  • Looper.loop():让Loop进入死循环。
  • getLooper()Handler中的方法, 获取Handler中缓存的Looper对象。
  • Looper.quit(): 终止 Looper.looper() 死循环, 执行 quitHandler机制将失效,执行时如果MessageQueue中还有Message未执行, 将不会执行未执行Message, 直接退出, 调用quit

相关文章:

【Android面试八股文】Looper如何在子线程中创建?

文章目录 一、Looper的几个重要方法二、子线程中使用Looper的方式1三、子线程中使用Looper的方式23.1 使用HandlerThread实现3.2 HandlerThread源码解析创建子线程的 Looper必须要通过 Looper.prepare()初始化looper,然后再通过 Looper.loop()方法让 Loop运行起来。 那么具…...

IT项目管理文档体系

IT项目管理文档体系是确保项目顺利进行、有效沟通和合规性的关键组成部分。一个完善的文档体系能够帮助项目团队记录决策过程、明确职责、跟踪进度、管理变更并提供审计痕迹。 项目启动文档: 项目章程:正式授权项目启动,定义项目目标、范围、…...

ELK企业内部日志分析系统(1)

ELKKafkaFilebeat企业内部日志分析系统(1) Elasticsearch集群部署 1.部署环境 IP地址主机名配置系统版本192.168.222.129es12核4GRockyLinux192.168.222.130es22核3GRockyLinux192.168.222.131es32核3GRockyLinux 2.配置主机名解析和主机名 #关闭防火墙与selinux #更改主机…...

反序列化POP链技术详解

POP( Procedure Oriented Programming )链是反序列化安全问题中相对比较重要的技术点,相比于其他的反序列化问题,这种漏洞的产生更加难以发现,以及在利用上也比较复杂。 要掌握这个东西首先要先了解面向对象中的几个特…...

process.env.VUE_APP_BASE_API

前端:process.env.VUE_APP_BASE_API 在Vue.js项目中,特别是使用Vue CLI进行配置的项目,process.env.VUE_APP_BASE_API 是一个环境变量的引用。Vue CLI允许开发者在不同环境下配置不同的环境变量,这对于管理API基础路径、切换开发…...

面试题--SpirngCloud

SpringCloud 有哪些核心组件?(必会)  Eureka: 注册中心, 服务注册和发现  Ribbon: 负载均衡, 实现服务调用的负载均衡  Hystrix: 熔断器  Feign: 远程调用  Zuul: 网关  Spring Cloud Config: 配置中心 (1)Eureka 提供服务注册和发现, 是注册中心. 有两个组…...

中位数贪心,3086. 拾起 K 个 1 需要的最少行动次数

一、题目 1、题目描述 给你一个下标从 0 开始的二进制数组 nums,其长度为 n ;另给你一个 正整数 k 以及一个 非负整数 maxChanges 。 Alice 在玩一个游戏,游戏的目标是让 Alice 使用 最少 数量的 行动 次数从 nums 中拾起 k 个 1 。游戏开始…...

xml_woarchive undefined symbol

最近在linux中编译一个自己写的老代码。是个C动态库。可以编译成功,但直到运行的时候才报 boost xml_woarchive undefined symbol. 解决的方法是在编译时要加上 wserialization 库。 注意,这个库有含 w 和不含 w 两个。在我这里需要使用含 w 的。 如果…...

SiCat:一款多功能漏洞利用管理与搜索工具

关于SiCat SiCat是一款多功能漏洞利用管理与搜索工具,该工具基于纯Python 3开发,旨在帮助广大研究人员有效地识别和收集来自开源和本地存储库的漏洞信息。 SiCat专注于网络安全管理方面的实践工作,允许研究人员快速实现在线搜索,…...

毕业论文初稿写作方法与过程

毕业论文初稿写作方法与过程 毕业论文是大学生在学业结束前必须完成的一项重要任务,它不仅是对学生所学知识的综合运用,也是对学生研究能力和写作能力的检验。写好毕业论文初稿是完成高质量毕业论文的关键一步。下面将具体阐述毕业论文初稿的写作方法和过…...

SLAM 精度评估

SLAM 精度的评估有两个最重要的指标,即绝对轨迹误差(ATE)和相对位姿误差(RPE)的 均方根误差(RMSE): 绝对轨迹误差:直接计算相机位姿的真实值与 SLAM 系统的估计值之间的差值,首先将…...

Postman使用教程

传统接口风格 RESTful风格 使用Postman完成测试用例目标: Postman教程 (1)准备工作,下载Postman新建 (2)登录接口调试-获取验证码 (3)登录接口调试-登录 (4)…...

UDP协议深入解析

一. UDP报文结构 UDP报文由以下4个字段组成: 源端口号(Source Port):16位,标识发送方的端口号。如果发送方没有使用端口号,则该字段为0。 目标端口号(Destination Port):16位,标识接收方的端口号。 长度(Length):16位,表示UDP报文的总长度,…...

Rethinking Federated Learning with Domain Shift: A Prototype View

CVPR2023,针对分布式数据来自不同的域时,私有模型在其他域上表现出退化性能(具有域转移)的问题。提出用于域转移下联邦学习的联邦原型学习(FPL)。核心思想是构建集群原型和无偏原型,提供富有成效的领域知识和公平的收敛目标。将样本嵌入拉近到属于相同语义的集群原型,而…...

打卡第2天----数组双指针,滑动窗口

今天是参与训练营第二天,这几道题我都看懂了,自己也能写出来了,实现思路很重要,万事开头难,希望我可以坚持下去。希望最后的结果是量变带来质变。 一、理解双指针思想 leetcode编号:977 不止是在卡尔这里…...

Running cmake version 2.8.12.2解决方案

Centos7安装mysql8.0,编译环节出现如下报错: Running cmake version 2.8.12.2 CMake Warning at CMakeLists.txt:82 (MESSAGE):Please use cmake3 rather than cmake on this platform-- Please install cmake3 (yum install cmake3) CMake Error at CMa…...

stm32中IIC通讯协议

参考资料:大部分均引用b站江协科技课程、GPT及网络资料 什么是IIC(i2C)通讯协议? 关键字:SCL、SDA、半双工、同步、串行。 IIC(Inter-Integrated Circuit),也称为I2C(In…...

允许防火墙通过端口 6379(通常用于 Redis 服务)那些年因为连接失败而一起熬过的夜

要允许防火墙通过端口 6379(通常用于 Redis 服务),您可以按照以下步骤在防火墙中添加规则。这里提供了使用 firewalld 和 ufw 两种常见防火墙管理工具的方法。 使用 firewalld (CentOS、Red Hat 等) 1. 启动并启用 f…...

tsconfig.json的include和exclude作用

tsconfig.json中的include和exclude属性用于指定需要被编译的TypeScript文件和需要被排除的文件。‌ include属性:‌用于指定哪些.ts、‌.tsx或.d.ts文件需要被编译。‌如果不指定include属性,‌则默认当前目录下除了exclude之外的所有.ts、‌.d.ts、‌…...

firewalld(8) policies

简介 前面的文章中我们介绍了firewalld的一些基本配置以及NAT的相关配置。在前面的配置中,我们所有的策略都是与zone相关的,例如配置的rich rule,--direct,以及NAT,并且这些配置都是数据包进入zone或者从zone发出时设置的策略。 我们在介绍…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...