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年10款评测

    国内外主流的10款开源文档协作平台对比:PingCode、Worktile、蚂蚁笔记(Leanote)、Wizard、Kooteam、ShowDoc、MrDoc、DooTask、语雀、WookTeam 。 在今天的数字化时代,寻找一个能够提高团队合作效率并确保信息共享流畅的解决方案,成了许多企业和个…

    2024年8月5日
    300
  • 企业如何智选知识管理工具?2024年8大精选

    本文将分享2024年8大优质企业知识管理工具:PingCode、Worktile、飞书文档、语雀、石墨文档、有道云笔记、Confluence、Document360。 很多公司都面临信息过载,难以将散落各处的知识有效整合和应用。这不仅影响决策效率,还可能导致重要信息的丢失。为了解决这一痛点,企业知识…

    2024年8月5日
    300
  • 产品经理秘籍:2024年9大主流需求管理工具

    本文将分享9款产品经理使用的主流需求管理工具:PingCode、Worktile、Tapd、禅道、Teambition、Testin、JIRA、Jama Connect、Wrike。 挑选一个能够高效精准地捕捉和管理需求的工具,对于推动项目成功至关重要,很多产品经理都面临着如何从众多选项中选择最适合…

    2024年8月5日
    400
  • 选择客户管理crm系统必看:全球15家顶级供应商综合比较

    对比的客户管理CRM系统包括:纷享销客、Zoho CRM、销售易、用友CRM、Salesforce、Microsoft Dynamics 365、销帮帮CRM、HubSpot、Oracle CRM、悟空CRM、神州云动CRM、红圈CRM、SAP CRM、Odoo、OroCRM。 一个合适的CRM系统…

    2024年8月5日
    700
  • 项目竣工资料管理软件有哪些

    项目竣工资料管理软件有许多,其中最为出色的要数PingCode和Worktile。这两款软件以其优秀的性能和功能,赢得了用户的青睐。简单来说,PingCode是一款专门为开发者设计的协作平台,强调代码质量、团队协作和敏捷开发。而Worktile则是一款面向企业的项目和任务管理工具,帮助团队更好地协作…

    2024年8月5日
    000

发表回复

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

400-800-1024

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

分享本页
返回顶部