位置: 编程技术 - 正文

Android:UI线程与子线程(android ui线程和主线程的区别)

编辑:rootadmin

推荐整理分享Android:UI线程与子线程(android ui线程和主线程的区别),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android ui线程和主线程的区别,android线程与线程通信,简述android线程及handler的关系,android的线程,android ui线程和主线程的区别,android的线程,android线程与线程通信,android的线程,内容如对您有帮助,希望把文章链接给更多的朋友!

在一个Android 程序开始运行的时候,会单独启动一个Process。默认的情况下,所有这个程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的两种,除此之外还有Content Provider和Broadcast Receiver)都会跑在这个Process。

一个Android 程序默认情况下也只有一个Process,但一个Process下却可以有许多个Thread。

在这么多Thread当中,有一个Thread,我们称之为UI Thread。UI Thread在Android程序运行的时候就被创建,是一个Process当中的主线程Main Thread,主要是负责控制UI界面的显示、更新和控件交互。在Android程序创建之初,一个Process呈现的是单线程模型,所有的任务都在一 个线程中运行。因此,我们认为,UI Thread所执行的每一个函数,所花费的时间都应该是越短越好。而其他比较费时的工作(访问网络,下载数据,查询数据库等),都应该交由子线程去执行, 以免阻塞主线程。

那么,UI Thread如何和其他Thread一起工作呢?常用方法是:

诞生一个主线程的Handler物件,当做Listener去让子线程能将讯息Push到主线程的Message Quene里,以便触发主线程的handlerMessage()函数,让主线程知道子线程的状态,并在主线程更新UI。

例如,在子线程的状态发生变化时,我们需要更新UI。如果在子线程中直接更新UI,通常会抛出下面的异常:

Android:UI线程与子线程(android ui线程和主线程的区别)

ERROR/JavaBinder():android.view.ViewRoot$CalledFromWrongThreadException:Only the original thread that created a view hierarchy can touch its views.

意思是,无法在子线程中更新UI。为此,我们需要通过Handler物件,通知主线程Ui Thread来更新界面。

如下,首先创建一个Handler,来监听Message的事件:

或者

当子线程的状态发生变化,则在子线程中发出Message,通知更新UI。

mHandler.sendEmptyMessageDelayed(UPDATE_UI, 0);

在我们的程序中,很多Callback方法有时候并不是运行在主线程当中的,所以如果在Callback方法中更新UI失败,也可以采用上面的方法。

Android RecyclerView 动画展开item显示详情 stackoverflow上看到这个问题,答主给了个

Android动画效果translate、scale、alpha、rotate详解(基础篇) 动画类型Android的animation由四种类型组成XML中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画

android 制作天气预报软件 天气预报软件是android中常见的工具软件最近我也做了一个感觉还是挺有趣的,随便发现很多android基础技术看看效果图:天气预报主要使用的开放接口这

标签: android ui线程和主线程的区别

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

上一篇:把android 中图片局部区域改为透明(android的图片应该放到哪一个目录下面?)

下一篇:Android RecyclerView 动画展开item显示详情(android recyclerview 拖拽加阴影)

  • 城建税减半征收政策文件
  • 报废的原材料
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 小规模纳税人普票和专票怎么交税
  • 小规模纳税人税率2023年是多少
  • 转让不动产增值税预缴
  • 工程预付款是否监管
  • 发放工资比计提工资少了
  • 资产损失类型有哪些
  • 食用油从商业流入的原因
  • 一般纳税人房租没有发票怎么办
  • 中方人员取得的工资、薪金所得,征收个人所得税有特别规定吗?
  • 支付给供应商的现金属于什么活动
  • 房地产公司需要和哪些部门打交道
  • 买一赠一怎么确定真假
  • 实收资本是否可以更改
  • 实木地板增值税怎么算
  • 简易计税进项税额转出公式
  • 企业采购成本包括所有的仓储费用
  • 光伏发电项目发电户是否可以享受小规模优惠政策
  • 华为手机蓝牙传送照片到苹果手机
  • 个税手续费返还要交增值税吗
  • 期末余额和期初余额
  • 长期待摊费用摊销会计分录
  • 个体户个人所得税免征额是多少
  • php 语法
  • 开机后网络连接很慢
  • win 8和win 7有什么区别
  • 为什么u盘里的文件无法删除
  • 涉税服务实务重点总结
  • 开展党建系列活动
  • 荣耀路由器怎么重置
  • kcleaner.exe是什么
  • 办置业公司需要哪些材料
  • 免购车税政策
  • react 刷新
  • 酒吧会计要做些什么
  • thinkphp,onethink和thinkox中验证码不显示的解决方法分析
  • 如何修改python
  • 自动驾驶车祸
  • php session_id
  • 企业的营业税金及附加
  • 主营业务收入需要结转吗
  • 对公给个人转账有风险吗
  • 网上学电脑哪个软件好
  • 长期待摊费用计提折旧
  • 什么视同小规模纳税人?
  • 无法连接配置的sql服务器
  • 公司法人代表可以有几个
  • 销售应税服务或劳务的纳税义务发生时间的一般规定
  • 个人所得税手续费返还增值税申报表怎么填
  • 抵扣税款
  • 资产处置收入需要缴纳增值税吗
  • 房地产企业账务处理所用科目
  • 暂估入库发票差异调整
  • 去年漏记了收入,可以记今年吗
  • 股东借款转实缴资本
  • 收到国库退款
  • 公司的商务卡的作用
  • 贷款公司收取服务费跑路
  • 应计入财务费用的科目是
  • 内部审计人员独立性
  • 工业企业自制半导体材料
  • mssql注入使用命令
  • 资源管理器操作教程
  • win7系统怎么打开开机启动项
  • vsftp查看状态
  • win10通知中心
  • win7无线网络显示x无法启用
  • cocos2d开发的知名游戏
  • unity拖进模型什么也看不到
  • 遮罩层出现后怎么点击其他地方隐藏
  • rd命令是什么
  • unity团队
  • 脚本添加crontab
  • node.js快速入门
  • linux使用adb
  • jquery 输出
  • ubuntu服务器配置代理访问外网
  • 出口退税申报已通过,又被删除,报关单号能用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设