位置: 编程技术 - 正文

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

  • 盈余公积转增资本会影响所有者权益吗
  • 税务免抵调库是什么意思
  • 股权转让如何进行资产评估的
  • 招聘只招一个人
  • 咨询公司小规模纳税人怎么界定
  • 机票抵扣进项只能在发生当月吗
  • 减免税款年末有余额吗
  • 其他应收款收到发票怎么写会计分录
  • 每月工资个税为零
  • 购进的材料没有发票可以入库吗?
  • 工资低于3000要申报吗
  • 刷卡手续费可以开经纪代理服务费吗
  • 冠名发票申请要求有哪些?
  • 营改增实施过程中的难点
  • 未达起征点企业怎么处理
  • 企业自主招聘有编制吗
  • 一个十图
  • 专项维修基金和契税有什么区别
  • 房屋租赁合同如何办理
  • 财务做哪些工作
  • 折旧计算所得税吗
  • 固定资产投资增值税进项税额抵扣规定
  • 分户记账
  • 小规模纳税人收到增值税专用发票怎么办
  • WIN10显示缩略图
  • 公司个人垫付的费用会计分录
  • 公司注销帐上的钱取出来要交税吗
  • linux开启远程ssh
  • php和py
  • 商品房契税申报是增量房申报吗
  • 有限公司股权转让怎么办理流程
  • AI:ModelScope(一站式开源的模型即服务共享平台)的简介、安装、使用方法之详细攻略
  • 只有收据没有发票怎么报销
  • TCN(Temporal Convolutional Network,时间卷积网络)
  • 餐费发票怎么做账务处理
  • 企业所得税征前减免是什么意思
  • ChatGPT强化学习大杀器——近端策略优化(PPO)
  • 自营与代理
  • 免税收入和免征
  • 租赁办公场所的法律规定
  • 工资表中可以出现减号的情况吗
  • php 操作mongodb
  • 员工旅游的费用账务处理
  • 制造车间买来刀具怎么办
  • 固定资产折旧的账务处理
  • 年末计提哪些科目
  • 对方给我们等额的钱
  • 长期待摊费用是摊销费用吗
  • 商品购进核算
  • 公司支付员工工资方式有几种
  • 销售货物没有开票的会计分录
  • 去年的亏损今年第一季度可以弥补吗
  • 保险公司 返点
  • 已认证抵扣的进项税额怎么填报表
  • 快递做账用什么软件
  • 培训费怎么算个人所得税
  • 养老服务机构有住房租赁贷款需求吗
  • mysql语句group by
  • 安装win7需要激活吗
  • linux运维是必死之路
  • 如何安装win95系统
  • 重装系统后没声音怎么解决win7
  • xp双系统怎么切换系统
  • ubuntu如何安装wps
  • hidden word什么意思
  • windows 10 mobile apk
  • perfom.exe
  • window10邮件
  • win10升级后小娜不能用
  • Extjs Ext.MessageBox.confirm 确认对话框详解
  • javascript括号
  • 编写批处理运行程序
  • mongoose怎么用
  • 关于Python的lambda函数,以下选项
  • android点击事件传递机制
  • 【Rayeager PX2分享】OpenCV入门之线段检测
  • 深圳个体户不注销的后果
  • 甘肃税务厅
  • 个人所得税法全文完整版2023个人工薪规定
  • 非房地产企业转让旧房土地增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设