按照下面的理解就是handler与ui线程有一定的关联可以因为更新界面只能在主线程中所有更新界面的地方可以在接受消息的handleMessage那里还有更新界面可以在handler.port(new Runnable))在自定义的线程中然后执行post方法通知主线程去更新这个界面。

Android 线程是单线程的。 所以更新UI要用到Handler:

private Handler splashHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case OVER:
progressDialog.dismiss();
break;
default:
break;
}
super.handleMessage(msg);
}
}; 

当一个线程运行完毕后可以发送通知给Hanler,通知主线程更新UI :

new Thread() {public void run() {
initList();
Message m = splashHandler.obtainMessage(OVER);
splashHandler.sendMessage(m);
splashHandler.post(r);
splashHandler.postDelayed(r, delayMillis);
splashHandler.postAtTime(r, uptimeMillis);}}.start();

也可以直接使用:

splashHandler.post(new Runnable(){
public void run() {
progressDialog.dismiss();
}
});
//splashHandler.postDelayed(r, delayMillis);
//splashHandler.postAtTime(r, uptimeMillis)

直接在Runnable 中更新UI,因为此时的 Runnable 是运行在UI所在的主线程中。

android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)相关推荐

  1. [UE4]RetainerBox,控制UI更新频率,把渲染后的UI当成Texture

    RetainerBox是一个容器,只会影响其容器内的UI,RetainerBox的作用: 一.控制UI更新频率(可能是为有优化性能) 1.在UserWidget中添加Retainer Box容器,并在 ...

  2. Android多线程UI更新-Handler

    Handler 处理程序允许您发送和处理Message与线程关联的可运行对象MessageQueue.每个 Handler 实例都与单个线程和该线程的消息队列相关联.当你创建一个新的 Handler ...

  3. Android线程间通信之handler

    本文来一起讨论下Android的handler机制. 相信写过android的童鞋,一定对handler很熟悉.因为使用频率实在太高了.尤其是在非ui线程,想要刷新ui控件的时候.因为ui控件的刷新只 ...

  4. Android(五)——控制UI界面的方法

    文章目录 1. 使用XML布局文件控制UI界面(推荐) 2. 在Java代码中控制UI界面 3. 使用XML和Java代码混合控制UI界面 4. 开发自定义的View 1. 使用XML布局文件控制UI ...

  5. Android线程和线程池(二)HandlerThread学习记录 使用+源码

    HandlerThreadAndroid线程和线程池(二)HandlerThread学习记录 使用+源码 一.作用 二.工作原理 三.HandlerThread的特点 优势: 劣势: 四.使用 五.源 ...

  6. Android线程间通信的几种实现方式

    1. 通过Handler机制: private void one() {handler=new Handler(){@Overridepublic void handleMessage(Message ...

  7. android线程间通信的四种实现方式

    1,通过Handler机制. private void one() {handler=new Handler(){@Overridepublic void handleMessage(Message ...

  8. Android接入百度自动更新SDK

    一:前言 公司的app,上传到百度应用市场,然后说必须要接入百度的自动更新sdk才能上架,于是从百度官网上去下载jar包,下载的时候必须要带上数据统计,如果使用自动的jar包,还需要带上广告联盟,坑爹 ...

  9. 【转】Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask

    方法一:(java习惯,在android不推荐使用) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { ...

最新文章

  1. Windows下MySQL安装
  2. Linux单网卡多个IP(或者多个网卡多个IP)设置
  3. SpringBoot连接MQTT进行发布消息时取消保留消息
  4. android调用flutter aar_Flutter原生混合开发
  5. C语言 指针数组-字符指针数组整型指针数组 char*s[3] int*a[5] 数组指针int(*p)[4]
  6. css揭秘实战技巧 - 形状 [二]
  7. 转载:SQL server2005 里面没有management studio!下载SQL开发版本
  8. 【路径规划】基于matlab RRT算法求解机器人避障路径规划问题【含Matlab源码 319期】
  9. Cisco(61)——双出口策略路由PBR+NAT
  10. opengl——贴图
  11. jquery自定义插件_创建一个自定义jQuery插件
  12. 安卓调用系统相机拍照并且显示在ImageView上
  13. revit怎么看服务器文件,Revit载入族后,如何快速找到族文件?
  14. 利用笔触素材制作逼真毛笔字
  15. Matlab 实现图像的直角坐标系和极坐标系的相互转化
  16. 西安航空学院计算机等级成绩查询,64所院校成绩查询网址
  17. python代码画樱花-你用代码写作业,他用Python让樱花绽放,美哭了!
  18. 思岚中小型机器人底盘Apollo怎么样?
  19. Windows10下获取PC电脑的机器序列号
  20. 开发-加班-过劳死还能引发什么样的话题?

热门文章

  1. Linux / sudo、su、sudo su、sudo -i 使用和区别
  2. java 10zhuan8,Java代码 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换
  3. linux刻录光盘空间不足,linux下刻录光盘所发生的问题及解决办法
  4. 藁城一中2021年高考成绩查询,2017藁城一中录取分数线及高考成绩情况
  5. 在线html5 api中文版,HTML5+ API Reference
  6. 【数的专题】——欧拉筛
  7. 前端开发中通过js设置cookie的一组方法
  8. centos7.0 没有netstat 和 ifconfig命令问题
  9. UFLDL 教程学习笔记(一)
  10. linux 上传工具 lr,Linux传输工具lrzsz