Android在非UI线程中更新UI的方法
2024-10-19 19:43:51
1、使用Thread+Handler实现非UI线程更新UI界面
在UI Thread中创建Handler。用sendMessage(message)或者obtainMessage(result, obj).sendToTarget()在handleMessage方法中更新UI。
推荐使用obtainMessage(result, obj).sendToTarget()。由于这种方法会先去消息池中看看有没有Message,假设有。则取出这个Message,假设没有再去创建。这个能够防止Message对象的反复创建,节省资源。
而sendMessage(message)则每次要先new Message。
推荐使用obtainMessage(result, obj).sendToTarget()。由于这种方法会先去消息池中看看有没有Message,假设有。则取出这个Message,假设没有再去创建。这个能够防止Message对象的反复创建,节省资源。
而sendMessage(message)则每次要先new Message。
private MyHandler mHandler = new MyHandler(); ......
mHandler.sendResult(MyHandler.UPDATE_VIEW, null);
...... private class MyHandler extends Handler{
private static final int UPDATE_VIEW = 0;
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_VIEW:
updateView();
break;
default:
break;
}
}
private void sendResult(int result, Object obj) {
Message message = new Message();
message.what = result;
message.obj = obj;
sendMessage(message);
//obtainMessage(result, obj).sendToTarget(); //效率更高
}
}
或者用Handler.post(runnable)的方法去更新UI。
2、使用View的post方法来更新UI
mView.post(new Runnable() {
@Override
public void run() {
updateView();
}
});
3、使用Activity.runOnUiThread(runnable)的方法来更新UI
最新文章
- 普林斯顿算法课第五周作业_KdTree
- Java学习笔记(二二)——Java HashMap
- LoadRunner中文乱码问题解决方案
- 51nod1244 莫比乌斯函数之和
- Asynctask的使用及理解
- hdu 1250 Hat's Fibonacci(高精度数)
- CMD修改IP地址
- 论JVM爆炸的几种姿势及自救方法,你不得不知!
- PL/SQL连接远程服务器数据库,出现ORA-12154: TNS: 无法解析指定的连接标识符。
- MySQL数据类型优化—整数类型优化选择
- 京东某商品页面的简单爬取 --Pyhon网络爬虫与信息获取
- react 路由跳转问题
- CUBA 7 新特性(上篇)
- Winform 多个窗口编辑同一条数据同步的实现
- c模拟银行家资源分配算法
- 【转】实现Http Server的三种方法
- 记一次安装多版本php的四个雷区,你踩着了吗
- [Leetcode Week14]Construct Binary Tree from Inorder and Postorder Traversal
- python selenium--常用函数3
- golang 开发过程中的坑
热门文章
- Android Activtity Security(转)
- 最快的csv文件入到数据库的方法
- Vue实例详解与生命周期
- UIButton中的三个UIEdgeInsets属性
- Openshift 节点添加和删除
- C#.net开发 List与DataTable相互转换 【转】
- Parallax Occlusion Mapping in GLSL [转]
- http://blog.csdn.net/congcong68/article/details/39256307
- DevExpress 自动匹配宽度,及其他使用笔记
- 转:一位10年Java工作经验的架构师聊Java和工作经验