位置: 编程技术 - 正文

android之handler

编辑:rootadmin

推荐整理分享android之handler,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

android中handler的基本使用方法以及运行原理。

最近看mars的android重置版第二季的视频关于handler的讲解,让我对于这个以前知道怎么用,却不是很明白原理的组件的理解瞬间加深了无数倍。mars真的讲的很好,视频真的都蛮不错的。下面我写写自己学习到的知识,以及自己的了解。

handler的基本运行原理handler怎样从worker thread传输数据到main threadhandler怎样从main thread传输数据到worker threadhandler的post()方法handler的基本运行原理

为什么我们需要一个handler?我想这是一个最重要的问题,也就是说handler的作用到底是什么?handler主要是用于线程间的通信,那么问题又来了,为什么一个app中需要多个线程,而不是只有一个UI主线程就可以了呢?

假如app中只有一个UI主线程,那么,当需要进行网络连接,网络下载这些等待耗时较长的任务时,android系统就会检测到UI主线程长时间没有响应,就会发出一个 application not response的异常警告,简称ANR问题。所以,在UI主线程中,是要与用户实时交互的,不能出现长时间的等待问题。于是,这些任务必须在worker thread中进行。

然而根据android的设定,UI主线程之外的线程,(除了特别的控件,例如progressbar)不能修改UI里的控件的,这样又出现了新的问题,我们在子线程获得的数据,该如何反应的UI上与用户进行交互?这样,就出现了这个巧妙的组件,handler!

android之handler

那么,handler到底是如何运行的呢?handler对象首先取出一个消息对象,存入到一个消息队列messagequeue中,然后在另外一端,有一个looper对象,循环的从消息队列中取出消息对象再交给handler去处理。

handler怎样从worker thread传输数据到main thread

通过这个例子,我们可以看到,handlerMessage()方法是运行在主线程中的,而他可以得到来自worker thread的消息,这样,就可以将消息在UI界面更新了。

为什么只是初始化了一个handler对象,就会自动调用他的handleMessage方法?是因为在android.os.Handler类中有一个looper对象,会循环的从消息队列中取出消息,调用handleM而是撒个方法。

handler怎样从main thread传输数据到worker thread

通过运行结果可以知道,handleMessage()方法运行在worker thread中,这样就可以在worker thread中处理来自主线程的消息,实现了进程间的通信。

handler的post()方法

post方法通过生成一个message,然后把Runnable对象放在message中,再把message放在消息队列中,然后在主线程中取出这个Runnable对象,在主线程中执行。

最后的结果,是这个Runnable对象执行在main线程中。有了post()方法,我们可以直接在worker thread中先生成一个Runnable对象,然后在其中写上更新UI的代码,直接用post方法即可更新UI。

使用lint工具优化Android代码 一、概述Androidlint工具是一个静态的代码分析工具,用来检查代码中潜在的问题并且提高代码的正确性,安全性,可用性,国际化和性能。确保代码中没

点击界面产生气泡,气泡效果~ packagecom.ray.bubble;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.drawable.AnimationDrawable;importandroid.os.Bundle;importandroid.view.MotionEvent;importandroid.vi

Android中的回调机制 从学习Android到现在,有意无意都会听到一个叫做回调机制的这么一个东东。例如Activity的生命周期函数就是通过回调机制来实现的,还有为控件添加监

标签: android之handler

本文链接地址:https://www.jiuchutong.com/biancheng/379700.html 转载请保留说明!

上一篇:Android 重写Seekbar(android重写方法)

下一篇:使用lint工具优化Android代码(lint 工具)

  • SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用(sqlserver2008r2数据库导出教程)

    上图中将“恢复模式”选成“完整模式”。

    2、备份数据库,如下图:

    备份时将“备份类型”选成“完整”。

    3、备份事务日志,如下图:

    将“备份类型”选成“事务日志”且备份目录与备份数据库的目录一致。

    将备份文件在备机上使用主机的全备文件进行还原,在还原数据的时候需要使用选上“with non recover”。如图所示:

    如果执行成功数据库将会变成这个样子:

    3、 建立镜像

    说明:shishan为数据库名,需要根据实际进行修改。..1.为备机IP地址,需根据实际进行修改。

    执行成功后:

    到此,SQL镜像热备配置完成。

    四、常见命令

    备份主数据库出现:Backup a database on a HDD with a different sector size,可以执行以下语句备份:BACKUP DATABASE MyDB TO DISK = N'D:MyDB.bak' WITH INIT , NOUNLOAD , NAME = N'MyDB backup" class="img-responsive" alt="SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用(sqlserver2008r2数据库导出教程)">

    SQL Server2008 R2 数据库镜像实施手册(双机)SQL Server2014同样适用(sqlserver2008r2数据库导出教程)

  • MAC快速归类整理桌面文件到新建文件夹的技巧(苹果电脑怎么归类app)

    MAC快速归类整理桌面文件到新建文件夹的技巧(苹果电脑怎么归类app)

  • 为何JS操作的href都是javascript:void(0);呢(下眼角疼痒)

    为何JS操作的href都是javascript:void(0);呢(下眼角疼痒)

  • perl文件操作的一些例子分享(perl 文件)

    perl文件操作的一些例子分享(perl 文件)

  • 土地增值税税率2023
  • 啥是完税凭证
  • 增值税结转和个体工商户的增值税缴纳分录如何做?
  • 机动车销售统一专票图片
  • 现代服务税目包含哪些
  • 上季度忘记申报个税了
  • 普票能抵扣多少
  • 税控盘交服务费
  • 预付账款在贷方是谁欠谁
  • 小规模纳税人年应税销售额标准是
  • 盈余公积属于什么类账户
  • 发放取暖补贴文件
  • 商贸公司可以用加工厂的商标委托加工生产吗
  • 普通发票红字冲销发票怎么操作
  • 应收账款周转率多少合适
  • 个人给公司开票税率
  • 增值税负数如何计算
  • 结转待转销项税额
  • 哪些营业外支出要调增
  • 2人注册的公司换一个人怎么办
  • 小规模银行存款多笔小金额财务费用可以合并记账吗?
  • 补充养老保险费可以扣除吗
  • 原料采购入库检测损耗的会计处理怎么做?
  • 月不超过10万,季不超过30万免什么税
  • 第三方软件测评费的取费标准
  • 垃圾清运工程师
  • 三险一金专项扣除怎么查
  • macbook自动弹出页面
  • 电脑开机屏幕黑屏无信号
  • win10如何查看显卡版本
  • 同一年可以先娶后嫁吗
  • 以前年度损益调整怎么做账
  • linux中ping命令怎么用
  • 暂估成本能挂账多久
  • 拍卖公司收入计入什么分录
  • smart制作
  • 收到银行退回的会计分录
  • 固定资产一次性加速折旧
  • phpseessid
  • 应收票据终止确认的情形
  • thinkPHP模板不存在抛出异常
  • 英雄联盟轮转模式2020时间表
  • 新个人所得税起征点2023
  • 房屋租赁可以开具住宿费发票吗
  • 企业的日常活动都有哪些
  • 月末损益结转手工结转步骤
  • 展会门票怎么入账
  • 哪几类账户期末余额最大
  • 不发工资可以先报警吗
  • 轿车折旧年限为几年
  • 增值税普票和卷式发票
  • mysql的常用命令
  • sql2008还原
  • 个税如果是公司怎么申报
  • 计入职工福利费的房租折旧属于人工成本吗
  • 差额征税指的是什么税种
  • 转出未交增值税会计处理
  • 印花税计入什么会计分录
  • 土地补偿费怎么算
  • 作业成本多用于直接成本的核算
  • 房地产企业扣除土地价款如何申报
  • 固定资产加速折旧最新政策2022
  • 第三季度利润
  • 账外资产处理
  • 企业研发费用包括工资支出吗
  • 公益捐赠仪式流程
  • sql触发器菜鸟教程
  • win7旗舰版系统恢复
  • centos php apache
  • xp开机启动项在哪里设置方法
  • 双显示器设置主副屏的方法
  • 无法收到steam短信代码
  • linux条件判断
  • linux中wget命令出现错误
  • win8怎么下载itunes
  • linux系统评测
  • java word操作
  • androidserviceslibrary设置
  • python console不能用
  • python 隐函数作图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设