Handler和Helper的区别是什么

Handler和Helper的区别是定义不同。handle指向某个类别的资源对象,如文件句柄,进程ID都可以用handle来表达,在当动词讲时含义是处理和操作。而handler表示的是过程(函数),理解为功能处理器的含义,如常用的回调函数可以用handler来表示。

Handler和Helper的区别是什么-Worktile社区

在计算机编程术语里handle作为名词时是对可进行管理的资源对象的抽象,handle指向某个类别的资源对象,如文件句柄,进程ID都可以用handle来表达,在当动词讲时含义是处理和操作。而handler表示的是过程(函数),理解为功能处理器的含义,如常用的回调函数可以用handler来表示。

handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理的机制,我们可以用它发送消息,也可以通过它处理消息。生命周期的改变都是通过handler消息改变的。

事实证明,子线程是可以更新UI的,但是如果子线程先休眠一段时间再去更新就会失败,这个还得从ViewRootImp的创建说起,ViewRootImp是在onResume()中创建的,没有休眠的子线程不会经历onResume()阶段,只有休眠过的子线程才会经历onResume()阶段,才会创建ViewRootImp,才会不能让子线程更新UI。但是我们不建议这么做,我们较好不要在子线程中更新UI。

Handler是用来结合线程的消息队列来发送、处理”Message对象”和”Runnable对象”的工具。

每一个Handler实例之后会关联一个线程和该线程的消息队列。也就是说,当你创建一个Handler的时候,从此开始,他就会自动关联到所在的线程/消息队列,然后它就会陆续把Message/Runnable分发到消息队列,并在他们出队的时候处理掉。因为android只允许在主线程中更新UI,Handler的目的就是作为线程通信的桥梁,进而再通过主线程更新UI。使用Handler这种异步回调机制,使我们可以再完成一个很长的任务后再做出相应的通知。

延伸阅读:

什么是Handler?

Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。

在Android中,对于UI的操作通常需要放在主线程中进行操作。如果在子线程中有关于UI的操作,那么就需要把数据消息作为一个Message对象发送到消息队列中,然后,由Handler中的handlerMessage方法处理传过来的数据信息,并操作UI。当然,Handler对象是在主线程中初始化的,因为它需要绑定在主线程的消息队列中。

类sendMessage(Message msg)方法实现发送消息的操作。 在初始化Handler对象时重写的handleMessage方法来接收Message并进行相关操作。

文章标题:Handler和Helper的区别是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37371

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月7日 下午11:02
下一篇 2023年2月7日 下午11:04

相关推荐

  • 农业项目投资如何管理好

    农业项目投资的有效管理是关键因素,对于投资者来说,制定清晰的计划、评估风险、实施持续监控、维持财务健康以及采用适应性管理策略是确保成功的重要组成部分。例如,制定清晰的计划涵盖了确定项目目标、资源分配、时间表和预期结果等方面。通过详细规划,投资者可以设定明确指标,从而更好地追踪项目进度和效益,确保项目…

    2024年4月10日
    4000
  • 项目管理有哪些理论

    基于“项目管理有哪些理论”的询问,项目管理的理论包括:1、泰勒的科学管理理论、2、法约尔的管理过程理论、3、梅奥的人际关系理论、4、赫兹伯格的双因素理论、5、系统理论、6、情境理论、7、项目生命周期理论。其中,系统理论为项目管理提供了一个宏观的视角,关注项目与环境的交互、项目组织内部的互动以及项目各…

    2024年1月8日
    43700
  • 企业应该留意加密软件的哪些功能

    企业应该留意加密软件的功能有:1、文件加密;2、权限管理与控制;3、文件轨迹追踪及水印溯源。加密软件最主要的就是文件加密功能。经过加密后的文件未经许可,无法打开文档,并且也不允许对文件进行拷贝、打印、截屏等等各项操作,保护文件的整个内部流通过程。 一、文件加密 加密软件最主要的就是文件加密功能。经过…

    2023年5月7日
    28000
  • 如何设置高效地管理项目

    项目管理是实现项目目标和交付成果的关键环节。高效地管理项目需要:制定清晰的项目目标、采用合适的项目管理方法、运用项目管理工具、建立有效的沟通机制、进行风险管理、不断进行团队建设。在这些要素中,采用合适的项目管理方法尤为关键,因为它为项目团队提供了一个清晰的框架,以协调资源、跟踪进度并确保项目成功。 …

    2024年4月10日
    6100
  • 系统集成项目管理工程师有初级吗

    系统集成项目管理工程师不设立初级类别。该职称从中级开始、标准通常较为严格、要求具备相关工作经验和专业知识。系统集成是IT领域的一个分支,涉及多个系统和组件的协调工作,以确保它们能够一起正常运作。中级工程师需把握项目的全局视角,并担保多个系统的无缝整合。 一、系统集成项目管理工程师职称说明 系统集成项…

    2024年1月8日
    38900
  • 什么是项目管理进度

    项目管理进度是项目成功的关键因素之一,它指的是项目从启动到完成的整个过程中各项任务的计划、执行、监控和调整。它确保项目按照既定目标和时间框架高效推进。项目的不同阶段涉及制定详细计划、资源分配、实时跟踪和风险应对等内容,其中特别需要关注制定详细计划这一环节,因为它是整个项目进度管理的基础。 详细计划的…

    2024年1月8日
    21600
  • 如何管理子公司项目进度

    子公司项目进度的管理涉及到周密的规划、有效的沟通以及严格的监控。首先、要确立明确的项目目标和进度计划,借助项目管理工具来跟踪各个阶段的完成情况,其次、保持与项目团队的定期沟通,通过会议或报告来更新项目状态,再次、对潜在的风险与阻碍进行分析和处理。其中确立明确的项目目标和进度计划尤为关键,它为项目的顺…

    2024年4月10日
    4800
  • oracle和mysql的区别是什么

    oracle和mysql的区别在于以下几个方面:1、本质的区别;2、数据库安全性;3、SQL语法的区别;4、存储上的区别;5、对象名称的区别;6、运行程序和外部程序支持等。本质的区别是指,Oracle数据库是一个对象关系数据库管理系统,MySQL是一个开源的关系数据库管理系统。 一、本质的区别 Or…

    2023年2月18日
    1.6K00
  • OKR是否适用于项目管理

    OKR(Objectives and Key Results)适用于项目管理。核心观点分为:1、目标对齐与透明性、2、提升执行效率、3、增强团队合作、4、持续改进与适应性、5、量化结果与反馈。OKR 有助于确保所有团队成员对项目目标具有清晰理解,支持团队工作向共同目标集中,并通过持续跟踪与反馈提高项…

    2023年11月15日
    20200
  • 项目风险的管理组织具体如何设立

    项目风险的管理组织设立需要明确风险管理流程、组织团队、制定策略、梳理工具和方法、以及设立监督机制。首先,确立一个清晰的风险管理流程是基础,包括风险识别、风险分析、风险评估、风险应对,以及风险监控。其次,组建专门的风险管理团队,并明确各参与者的职责和沟通路径。再次,为可能出现的风险制定防范和应对策略,…

    2024年4月11日
    6900

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部