Activity.runOnUiThread()

主线程(UI线程):主要来完成UI绘制和响应用户的操作(Activity、Service等组件的回调函数都在UI线程中运行)
子线程(工作进程):完成一些耗时操作,也能避免ANR
理解:利用子线程减轻主线程的负担

主线程负责更新UI,在子线程中通过网络请求或一些其他的耗时操作后,一般更新UI采用Handle+Thread,但操作比较繁琐,所以介绍以下runOnUiThread方法。

如下,它能把Runnable中的代码放到UI线程之中去执行。
在这里插入图片描述
然后来看一下源码:先判断当前的线程是否是主线程,如果是主线程就直接执行Runnable接口的run()方法,如果不是主线程 就调用Handler的post(Runnable)方法。
在这里插入图片描述
当 mHandler.post(action)执行的时候(不是主线程)
Handler将会:
1.在主线程里通过无参的构造方法创建一个Handle
2.把这个消息添加到UI线程的Looper的消息队列
3.进行排队,当轮到这个信息时,主线程便会执行它

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值