位置: 编程技术 - 正文

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 拖拽加阴影)

  • 进项税抵扣怎么做账
  • 售后维护费账务处理
  • 税务局代个人开票
  • 出票后定期付款的汇票是什么意思
  • 劳务费可以开工程服务发票吗
  • 个人如何办理营业执照需要什么材料
  • 专利年费入什么会计科目
  • 备用金没有发票抵消违法吗
  • 运输服务增值税纳税义务发生时间
  • 建筑业预交增值税按什么算
  • 免征的附加税是什么
  • 三栏式明细账科目编号怎么填
  • 商业企业销售的商品遭受损失的赔偿依据
  • 营业执照三证合一是哪一年开始的
  • 股东债权转资本公积利和弊
  • 增值税普通发票税率
  • 印花税 企业
  • 把黑龙江省
  • 资本公积要交印花税账簿税吗
  • 企业账面库存过大应怎样处理好
  • 安置房视同销售需要缴纳所得税吗?
  • 返修产品如何账务处理
  • 民营医院实收资本科目
  • 代开专票计提附加税吗
  • 基本户里面的钱的用途
  • 技术合同指什么
  • 如何在excel中运算
  • 物业专项维修资金可以退还吗
  • 主板BIOS无法更改显存
  • 企业在弥补亏损和提取法定盈余公积前一般不得分配利润
  • 所得税季度预缴怎么算
  • php socket_write
  • 房屋产权置换协议书范本
  • PHP:imagegammacorrect()的用法_GD库图像处理函数
  • 虚拟机是什么意思
  • php顺序查找和二分查找
  • vue修改表格数据
  • 所得税季报本月数是指
  • 销项税的分录怎么做
  • 转让固定资产使用权是出租吗
  • pytorch map
  • python单子
  • php原生类
  • 普通发票冲红后还会有税吗
  • 中标费用由哪方出
  • 送货单需要跟在凭证后面吗
  • C语言中如何计算除法
  • mysql临时表什么时候销毁
  • sql server 2008使用说明
  • 劳务费应该怎么做会计分录
  • 金税卡就是税控盘吗
  • 专用发票和普通发票 报销
  • 应交销项税转出分录
  • 购置办公大楼,会计处理
  • 以前年度损益这个科目
  • 研发费用加计扣除是什么意思啊
  • 新会计准则待摊费用还有吗
  • 非营利医疗机构是什么单位
  • 繁体系统安装简体软件
  • window10怎么启用net 3.5
  • win7系统重装后没声音
  • mac如何更改
  • 给推荐几款
  • linux开发经验指的什么
  • windows8.1更新windows10
  • win10预览版21301bug
  • cocos2dx加libevent库
  • android中数据存储
  • bootstrap应用
  • 简略说明本岗位最高风险的防范措施和现场处置方案
  • android录音软件
  • 使用Raygun来自动追踪AngularJS中的异常
  • 深入python3
  • js实现网页收藏的方法
  • 北京海淀大集一览表?
  • 一年内在两家公司任职个税汇算清缴
  • 2020年职工探亲路费报销最新规定
  • 税收通知
  • 珠海的教育水平在全省的排名
  • 土地面积测量
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设