Android-Handler机制详解,androidstudio电子书_android studio hanlder的值传给函数-程序员宅基地

技术标签: 程序员  架构  android  移动开发  

答:Android在设计的时候,封装了一套消息创建,传递,处理机制,如果不遵循这样的机制就没法更新UI信息,就会抛出异常。

3、handler怎么用?

答:1.post(Runnable)

2.postDelayed(Runnable,long)

3.sendMessage

4sendMessageDelayed

4、Android为什么要设置只能通过Handler机制更新UI?

答:最根本的问题是解决多线程并发的问题

假设如果一个activity中,有多个线程去更新UI,并且都没有加锁机制,那么会产生什么样的问题?——更新界面混乱;

如果对更新UI 的操作都加锁处理的话会产生什么样子的问题?——性能下降

对于上述问题的考虑,Android提供了一套更新UI的机制,我们只需要遵循这样的机制就好了。

不用关心多线程的问题,更新UI的操作,都是在主线程的消息队列当中轮询处理的。

5、handler的原理是什么?

答:handler封装消息的发送(主要包含消息发送给谁)

2.Looper——消息封装的载体。(1)内部包含一个MessageQueue,所有的Handler发送的消息都走向这个消息队列;(2)Looper.Looper方法,就是一个死循环,不断地从MessageQueue取消息,如果有消息就处理消息,没有消息就阻塞。

3、MessageQueue,一个消息队列,添加消息,处理消息

4、handler内部与Looper关联,handler->Looper->MessageQueue,handler发送消息就是向MessageQueue队列发送消息。

总结:handler负责发送消息,Looper负责接收handler发送的消息,并把消息回传给handler自己。

5、handler的原理是什么?

答:1、handler封装消息的发送(主要包括消息发送给谁)

2、Looper——消息封装的载体。(1)内部包含一个MessageQueue,所有的Handler发送的消息都走向这个消息队列;(2)Looper.Looper方法,就是一个死循环,不断地从MessageQueue取消息,如果有消息就处理消息,没有消息就阻塞。

3、MessageQueue,一个消息队列,添加消息,处理消息

4、handler内部与Looper关联,handler->Looper->MessageQueue,handler发送消息就是向MessageQueue队列发送消息。

总结:handler负责发送消息,Looper负责接收handler发送的消息,并把消息回传给handler自己。

MessageQueue存储消息的容器。

6、HandlerThread的作用是什么?

答:HandlerThread thread=new HandlerThread(“handler thread”);自动含等待机制,等Looper创建好了,才创建Handler,避免出现空指针异常。

7、主线程

由于篇幅原因,这份面试宝典已经被整理成了PDF文档,有需要Android面试宝典全套完整文档的麻烦点赞+点击GitHub即可获取资料免费领取方式!

本文在开源项目:GitHub中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

%E8%96%AA%EF%BC%81.md),里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sa3221sa/article/details/122788686

智能推荐

信息安全:防火墙技术原理与应用._防火墙应用场景-程序员宅基地

文章浏览阅读2.5k次,点赞29次,收藏49次。防火墙是网络安全区域边界保护的重要技术。为了应对网络威胁,联网的机构或公司将自己的网络与公共的不可信任的网络进行隔离,其方法是根据网络的安全信任程度和需要保护的对象,人为地划分若干安全区域,这些安全区域有:公共外部网络;内联网;外联网(内联网的扩展延伸,常用作组织与合作伙伴之间进行通信);军事缓冲区域,简称 DMZ;它一般安装在不同的安全区域边界处,用于网络通信安全控制,由专用硬件或软件系统组成._防火墙应用场景

make,Makefile简易教程_make makefile-程序员宅基地

文章浏览阅读832次。一、概述make是一个类UNIX系统下的编译命令,也可以理解为一个项目管理工具,通过make可以按照自己指定的编译命令编译整个项目,相当于将在命令行的编译命令按序执行,省去了反复键入编译命令的麻烦。除此之外,如果手动执行编译命令,不仅费时难以记忆,最重要的是每执行一次编译命令,项目中的整个文件都要重新编译,即使是未修改过的文件,这在大型项目中是难以忍受的。而make就提供了一种完美的解决方案,它将要执行的编译命令通过特定的语法组织到Makefile文件中,每次只要执行make命令,就可以完成整个项目的构建_make makefile

SyntaxError: Non-ASCII character '\xe5' in file TestMain.py on line 4, but no encoding declared;-程序员宅基地

文章浏览阅读5.8k次。【问题描述】运行Python程序时报错,提示为:SyntaxError: Non-ASCII character '\xe5' in file TestMain.py on line 4, but no encoding declared;【原因分析】Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文(或者其他非英语系的语言),此时即使你把自..._syntaxerror: non-ascii character '\xe5' in file

yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署_yolov8 rknn-程序员宅基地

文章浏览阅读1w次,点赞19次,收藏89次。yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署。包含模型、测试图片和完整测试代码。跟上技术的步伐,yolov8 首个板端芯片部署。_yolov8 rknn

win7中VS2010中安装CSS3.0问题解决方法_vs中安装css3.0-程序员宅基地

文章浏览阅读1.7k次。在安装Standards Update for VS2010 SP1后,VS2010中没有CSS3.0问题,以下是我的解决方法1、首先去官网下载 CSS 3 Intellisense Schema 网址:http://visualstudiogallery.msdn.microsoft.com/7211bcac-091b-4a32-be2d-e797be0db210/view/Discus_vs中安装css3.0

基于高德地图实现完全自定义Marker_高德地图 marker 自定义-程序员宅基地

文章浏览阅读1.3w次,点赞5次,收藏11次。  做地图社交类APP开发的都知道,一般情况下,为了整体的美观和用户体验度,我们需要定制化Marker的样式。本文中实现的方式都是基于高德地图的,百度地图也类似,大家可以照葫芦画瓢,废话不多说,先来看看最终效果:实现思路: 先来看看高德官方提供的设置Marker图标的方法:我们可以看到setIcon()方法,里面的参数BitmapDescriptor就是我们最终需要的东西。那..._高德地图 marker 自定义

随便推点

AD器件距离过近报错 AD修改丝印的距离间距_ad中丝印间距规则怎么改-程序员宅基地

文章浏览阅读1.8w次,点赞21次,收藏80次。今天画板子遇见了一个间距报错,图片如下我当时想着,修改丝印的间距就可以了,查找了一些资料之后发现是这样修改并且我将其修改到了0但是结果还是如上图一样,报错。最后发现除此之外,我们还需要修改元件之间的电气距离修改完成之后就OK!..._ad中丝印间距规则怎么改

论文笔记-End-to-End Human Pose and Mesh Reconstruction with Transformers(使用TransFormer进行端到端的人体姿态估计和网格重建)-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏17次。代码和预训练模型:https://github.com/microsoft/MeshTransformer摘要:文章提出MEsh TRansfOrmer(METRO)方法,用于从单个图像重建三维人体姿态和网格顶点。其中用到了注意力编码器来联合建模顶点-顶点和顶点-关节的交互,并同时输出三维关节坐标和网格顶点。介绍:复杂的关节运动和咬合带来了很多挑战。在这方面的工作分为两类①使用参数模型并学习预测形状和姿态系数(SMPL,用到了β和θ作为输入参数,其中β代表是个人体高矮胖瘦、头身比等比例的10个参数.

srpg 胜利条件设定_英雄联盟获胜条件-程序员宅基地

文章浏览阅读601次。srpg 胜利条件设定 介绍 (Introduction)The e-sports community has been growing rapidly in the past few years, and what used to be a casual pastime has morphed into an industry projected to generate $1.8 B in r..._first inhibitor

sed 简明教程_sed.exe移动匹配行-程序员宅基地

文章浏览阅读1.1k次。awk于1977年出生,今年36岁本命年,sed比awk大2-3岁,awk就像林妹妹,sed就是宝玉哥哥了。所以 林妹妹跳了个Topless,他的哥哥sed坐不住了,也一定要出来抖一抖。sed全名叫stream editor,流编辑器,用程序的方式来编辑文本,相当的hacker啊。sed基本上就是玩正则模式匹配,所以,玩sed的人,正则表达式一般都比较强。同样,本篇文章不会说sed的全部东西,你可_sed.exe移动匹配行

Java总结进阶之路 (基础四)I/O流_java进阶之路-程序员宅基地

文章浏览阅读246次。输入流、输出流 笔记汇总_java进阶之路

BusyBox ifup udhcpc后台运行-程序员宅基地

文章浏览阅读183次。/********************************************************************** * BusyBox ifup udhcpc后台运行 * 说明: * 发现ifup会调用udhcpc,但是并不会切换到后台运行,解决一下。 * * ..._udhcpc 后台持续