位置: 编程技术 - 正文

Android更新UI的四种方式(android更新ui的方式)

编辑:rootadmin
前言

推荐整理分享Android更新UI的四种方式(android更新ui的方式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android更新实现的,android 更新ui,android ui 适配如何处理,android 更新ui,android updates,android实时更新ui,android实时更新ui,android更新实现的,内容如对您有帮助,希望把文章链接给更多的朋友!

相信初学Android开发的朋友来说,应该都会遇到一个问题,我们开启了一个线程,在这个线程里面我们进行了更新UI的操作,也许是在TextView显示了一行文字,也许是改变了ImageView显示的图片,虽然只是看似简单并且正确的操作,但是Android系统让你的程序光荣的崩溃了,并且你还不知道为什么错,这才是最痛苦的,曾经深受这种痛苦的我,为了不再让这种痛苦蔓延下去,我决定把更新UI的几种方法给大家好好说说,让大家在Thread的run方法中可以随心所欲的更新UI,再也不用痛苦了。

实现

利用Handler类的post方法

我们首先需要在MainActivity中生成一个Handler类的对象,可以不用实现handMessage方法,因为Handler类的对象此时不是处理消息而是充当发送消息的角色。

Android更新UI的四种方式(android更新ui的方式)

这样,我们出入一个Runnable,在里面实现我们更新UI的代码,然后就可以更新了,不会崩溃的。

利用Handler自己的处理消息的方法 我们知道Handler可以发送消息也可以处理消息,第一种方法我们用到了发送消息的功能,现在我们用它处理消息的功能。 我们需要生成一个Handler对象,并且我们需要覆盖它的处理消息的方法,然后我们自己实现我们需要的内容,如下面所示:

可以看到,我覆盖了handleMessage方法,然后在里面我添加了更新UI的代码,当然也是正确的,可以成功的更新UI。然后我们需要在MainActivity中调用Handler的发送消息的方法,给自己发送消息,然后才能处理,我们可以简单的调用一个方法发送一个空消息即可:handler.sendEmptyMessage(0);

在runOnUiThread方法中更新UI

runOnUiThread方法,根据其名称我们就可以知道这个方法可能就是用来更新UI的,因为更新UI必须在UI线程,其他线程不允许更新UI,所以我们在runOnUiThread方法中传入一个Runnable,然后我们在里面实现我们的操作就可以了。这个方法和第一个方法还是很像的,我个人还是比较喜欢这个方法的,因为它不需要一个Handler的对象,我觉得很方便啦。

View调用post方法实现更新UI 其他的三种方法我们都是通过其他的类和方法来实现View的更新,最后一个方法是View自己调用自己的方法来实现更新,不过还都是大同小异的问题,最后实现的原理还都是差不多的。

我们同样需要传入Runnable,然后更新就可以了。

总结

因为Android系统在设计的时候就不让我们在非UI线程进行更新UI的操作,不仅如此我们也不能在UI线程进行连接网络的操作,如果不知道的朋友可能会被坑死吧(本人已被坑过),都是为了UI线程的安全性,我们如果需要在UI线程进行更新操作,比如显示下载进度啦,更新进度条等等,我们这时候就需要一个能在UI线程和非UI线程进行通信的对象,通知UI线程去更新非UI线程的要求,这个对象我想Handler应该就是它了,至于Handler的重要性,我就不累述了,有兴趣的大家可以自己去找一些相关的资料来看,弄懂Handler机制的存在意义及使用方法,相信对开发还是很有帮助的。

android面试常考题 1、Android的四大组件是哪些,它们的作用?2、请`介绍下Android中常用的五种布局。3、android中的动画有哪几类,它们的特点和区别是什么4、android中有哪

Android 开发git学习,常用命令总结 转载地址:

Android演示工具 有的时候在写操作手册需要截图,或者给客户演示你的安装在手机上的AndroidAPP,可以使用豌豆荚、手机助手等工具。但是这些工具都比较大,几十兆

标签: android更新ui的方式

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

上一篇:java List与array互相转换(java list和array list区别)

下一篇:android面试常考题(android面试题及答案2021)

  • 一般纳税人应纳税额减征额怎么算
  • 所得税费用属于什么科目借贷方向
  • 建筑公司劳务分包抵扣分录
  • 幼儿园收费怎么说
  • 小规模纳税人外账处理
  • 公司购买汽车的购置税怎么做账
  • 哪个税种不需要认定就能在电子税务局申报
  • 返佣账务处理
  • 房地产开发企业增值税税率
  • 企业库存现金的限额是由( )核定的
  • 高新企业职工教育经费扣除比例
  • 工程报废及毁损如何做会计处理合适呢?
  • 资产负债表应交税费从哪取数
  • 工程服务预交税款怎么账务处理?
  • 印花税工会经费会计分录
  • 开了发票一定要确认收入吗
  • 个体户的定额发票怎么领
  • 跨年补提上年工资汇算清缴
  • 多计提企业所得税费用会计分录
  • 运输费未取得运输专用发票怎么抵扣?
  • 做财务报表是什么岗位
  • 固定资产审计目标
  • 消费税的附加税和增值税的附加税
  • 技术服务费如何收取
  • 临时文件夹在哪个位置
  • 关闭客户端快捷键
  • linux文本编辑器命令
  • 退税账务处理分录
  • 微软发布新的免费 Win11 虚拟机 (2302)
  • windows10一直刷屏
  • 如何开启系统自带杀毒软件
  • 完税凭证遗失后还能用吗
  • 股权转让交易税计税依据是什么
  • 公司帮员工买社保能扣税吗
  • 资产接收范围的确定
  • 事件监听处理的实现原理
  • 货运业增值税税率
  • batch size 大小
  • 企业所得税核定征收方法有哪两种
  • phpstudy删除
  • 发票过账和不过账是什么意思
  • vue-axios详细介绍
  • php开发程序
  • php framework框架
  • jquery vue.js
  • sqlserver2008误操作数据
  • 长期待摊费用最低摊销年限
  • 开多少平方超市赚钱
  • 建筑安装行业都需要什么资格证书
  • 举办会议收入如何入账
  • 将购进的材料用于自制生产用设备
  • 不动产租赁行业代码
  • 咨询公司评估选择标准
  • 红字发票填开说明是?
  • 注册公司认缴和实缴的风险区别
  • sqlserver多表关联查询
  • 搭建docker私有仓库实验报告
  • windowsold文件夹在哪里
  • Ubuntu Eclipse MyEclipse 添加GBK支持 不乱码
  • 一键u盘安装系统
  • win7同步中心怎么关掉
  • windowsxp怎么卸载
  • u盘设置背景音乐怎么弄
  • centos7.6桌面版安装教程
  • ubuntu apt-cdrom
  • win7小技巧
  • win7电脑dns存在问题怎么修复
  • linux常用的帮助命令
  • cocos2dx加libevent库
  • myeclipse创建
  • Node.js中的核心模块包括哪些内容?
  • Javascript字符串对象函数
  • javascript日常用途有哪些
  • 湖南增值税普通发票查询系统官网
  • 税务局高风险是怎么办
  • 国家税务局39号公告退税
  • 公司买水果怎么开票
  • 耕地占用税是土地增值税开发成本吗
  • 江苏省镇江市街道名称
  • 到税务局领购免税产品
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设