子线程中更新UI的几种方法
来源:互联网 发布:杜海涛 知乎 编辑:程序博客网 时间:2024/05/16 08:26
UI一般只能在主线程(UI线程),更新,如果要在子线程更新的话怎么办?
总结了一下大概有下面五种方式:
1.使用runOnUiThread()
示例代码:
new Thread() { public void run() { //这儿是耗时操作,完成之后更新UI; runOnUiThread(new Runnable(){ @Override public void run() { //更新UI button.setText("sssssss"); } }); } }.start();
new Thread() { public void run() {button.post(new Runnable(){ @Override public void run() { button.setText("sssssss"); } });
}}.start();
3.Broadcast
子线程中发送广播,主线程中接收广播并更新UI
4.AsyncTask
AsyncTask可方便地实现新开一个线程,并将结果返回给UI线程,而不需要开发者手动去新开一个线程,也无须开发者使用Handler,非常方便。
5.Handler + Message或者Handler + Thread + Message
其实最后两种(第四和第五)不算是在子线程中更新吧?
0 0
- 在子线程中,更新ui的几种方法
- 子线程中更新UI的几种方法
- 子线程更新UI的几种方法
- 子线程更新UI的几种方法
- android中在子线程中更新UI的几种方法
- Android 在子线程中更新UI的几种方法
- 安卓-子线程中更新UI的几种常见方法
- Android 在子线程中更新UI的几种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- Android子线程中更新UI的3种方法
- C++11新特性——auto的使用
- 打印全局、局部、static变量的地址,确定其存储位置
- 机器学习笔记(二)L1,L2正则化
- 数字符串里的单词数
- 你所经受的我必经受
- 子线程中更新UI的几种方法
- android 系统默认值数据库路径
- 为什么Arrays.asList(T...t)不能add和remove?
- RAC 执行root脚本显示内容
- 拓扑排序
- 打印星星
- 按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分
- SGI STL 的内存管理
- C语言中函数修改指针本身