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

 我来答
草原上之狼
高粉答主

2018-06-06 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4047万
展开全部
在子线程中更新UI:由于安卓更新UI元素必须在主线程中,否则就会出现异常。有时候我们必须在子线程里去执行一些耗时任务,然后根据任务的执行结果来更新相应的UI控件,比如:执行网络请求,需要将传回的数据更新到UI上。
操作方法:
一、在主线程中new出Handler的实例handler,在Handler的handleMessage()方法中传回的Message对象属性进行判断,当满足要求时,执行UI更新的操作。

在子线程的run()方法内,1、实例化Message对象message;2、对象调用Message的what变量,设置message的属性;3、对象调用sendMessage()方法,将Message对象发送出去。
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_TEXT:
// 在这里可以进行UI操作
text.setText("Nice to meet you");
break;
default:
break;
}
}
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.what = UPDATE_TEXT;
handler.sendMessage(message); // 将Message对象发送出去
}
}).start();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式