Android中六种更新UI的方法

原创 2016年06月01日 17:42:49
子线程与UI线程交互,以更新UI的方法,大致有以下六种:
1)、handler和message机制:通过显示的抛出、捕获消息与ui进行交互。

2)、Handler.post(Runnable):在线程里面发送消息,然后在Handler的dispatchMessage()方法中进行处理。

3)、View.post(Runnable):将操作放入到message队列中,如果放入成功,该操作将会在ui线程中执行,并返回true,否则返回false。其实就是调用了Handler.post(Runnable)方法。

4)、View.postDelayed(Runnable, long)跟第三条基本一样,只不过添加了一个延迟时间。

5)、Activity.runOnUiThread(Runnable):如果当前线程为ui线程,则立即执行;否则,将参数中的线程操作放入到ui线程的事件队列中,等待执行。

6)、使用AsyncTask直接更新UI。

2~6条其实底层实现都是Handler的通信机制,详细介绍可以参考郭神的博文:http://blog.csdn.net/guolin_blog/article/details/9991569

版权声明:本文出自warmor的博客,欢迎转载,请在转载时注明出处。

Android异步更新UI的几种方法

前言:我们知道在android开发中不能在非ui线程的其他线程中更新ui,但是,有的时候我们需要在代码中执行一些诸如访问网络、查询数据库等耗时操作,为了不阻塞ui线程,我们时常会开启一个新的线程(工作...
  • ydxlt
  • ydxlt
  • 2016年04月26日 12:37
  • 6203

Android更新Ui的几种方法和见解

先贴一个我们刚做Android开发时候最容易遇到的一个错误异常 AndroidRuntimeException :“Only the original thread that created a vi...
  • u011254308
  • u011254308
  • 2015年04月18日 19:29
  • 8869

Android 更新UI方法的深度解析

Android开发中,我们总是会遇到更新UI的场景。如果,我们直接在子线程中更新UI,那么会报错!提示我们,要在主线程中更新UI。那么具体更新UI有几种方法呢?下面就来列举这几种更新UI的方法。 1....
  • zxw136511485
  • zxw136511485
  • 2016年11月03日 14:22
  • 1998

Android子线程中更新UI的3种方法

在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法。 一. 引言 首先来看一下Android中消息机制: 专业术语:...
  • silleyj
  • silleyj
  • 2017年02月12日 22:30
  • 4796

Android 更新UI的两种方式

Android 更新UI的两种方法——handler和runOnUiThread() 在Android开发过程中,常需要更新界面的UI。而更新UI是要主线程来更新的,即UI线程更新。如果在主线线程之...
  • Lucky_bo
  • Lucky_bo
  • 2016年08月19日 16:58
  • 1908

android进行异步更新UI的四种方式

大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,我大致总结了4种方式,欢迎补充纠正: 使用Handler消息传递机制; 使用AsyncTa...
  • mislaydu
  • mislaydu
  • 2016年06月28日 15:18
  • 5099

android中在子线程中更新UI的几种方法

我们都知道android中,不允许在子线程中更新UI,凡是更新UI的操作必须放到主线程中,否则就会报如下异常: android.view.ViewRoot$CalledFromWrongThread...
  • u013320868
  • u013320868
  • 2016年04月20日 23:24
  • 890

android中子线程更新UI的方式浅析

一、为何写作此文  你是不是经常看到很多书籍中说:不能在子线程中操作ui,不然会报错。你是不是也遇到了如下的疑惑(见下面的代码):@Override protected void onCr...
  • a910626
  • a910626
  • 2015年05月23日 23:44
  • 3550

Android 在子线程中更新UI的3种方法

第一种:new Handler(context.getMainLooper()).post(new Runnable() { @Override public void run() {...
  • u010507199
  • u010507199
  • 2017年05月03日 10:50
  • 1297

Android子线程中更新UI的3种方法

方法一:用Handler  1、主线程中定义Handler:  Java代码   Handler mHandler = new Handler() {              @Ove...
  • u011682673
  • u011682673
  • 2016年11月17日 22:17
  • 6497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中六种更新UI的方法
举报原因:
原因补充:

(最多只允许输入30个字)