runOnUiThread更新主线程

简介:
更新UI采用Handle+Thread,需要发送消息,接受处理消息(在回调方法中处理),比较繁琐。除此之外,还可以使用runOnUiThread方法。
 
利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,然后在需要更新ui时,把这个Runnable对象传给Activity.runOnUiThread(Runnable)。 
 
Runnable对像就能在ui程序中被调用。如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程。
 
实现的功能与 上一篇文章(Handler+Thread)相同。
 

public class TestActivity extends Activity {

 

Button btn;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.handler_msg);

btn = (Button) findViewById(R.id.button1);

 

btn.setOnClickListener(new OnClickListener() {

 

@Override

public void onClick(View view) {

// TODO Auto-generated method stub

 

new Thread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

        // 模拟耗时的操作。

try {

Thread.sleep(10000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 更新主线程UI

TestActivity.this.runOnUiThread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

btn.setText("更新完毕!");

}

});

 

}

}).start();

 

}

});

 

}




本文转自wanqi博客园博客,原文链接:http://www.cnblogs.com/wanqieddy/p/4153203.html如需转载请自行联系原作者



相关文章
|
22天前
|
Java
主线程等待子线程执行完毕再执行的几种方式
主线程等待子线程执行完毕再执行的几种方式
|
22天前
关于子线程被打断执行的问题
关于子线程被打断执行的问题
|
7月前
主线程等待子线程执行完毕再执行方法
主线程等待子线程执行完毕再执行方法
|
10月前
|
编译器
主线程退出对子线程影响
主线程退出对子线程影响
86 0
|
Java Android开发
【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
451 0
|
物联网 Linux 开发者
线程被取消的时候执行清理函数|学习笔记
快速学习线程被取消的时候执行清理函数
84 0
线程被取消的时候执行清理函数|学习笔记
|
Android开发
【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )(一)
【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )(一)
163 0
【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )(二)
【EventBus】事件通信框架 ( 发送事件 | 判断发布线程是否是主线程 | 子线程切换主线程 | 主线程切换子线程 )(二)
112 0
【EventBus】EventBus 源码解析 ( 事件发送 | 发布线程为 子线程 切换到 主线程 执行订阅方法的过程分析 )
【EventBus】EventBus 源码解析 ( 事件发送 | 发布线程为 子线程 切换到 主线程 执行订阅方法的过程分析 )
147 0
为什么有时候在子线程更新UI没报错?
为什么有时候在子线程更新UI没报错?
137 0
为什么有时候在子线程更新UI没报错?