展会信息港展会大全

android后台线程怎么创建UI组件
来源:互联网   发布日期:2016-01-13 22:10:05   浏览:2708次  

导读:比如在android ProgressDialog和后台线程中前台ui线程在显示ProgressDialog,后台线程在下载更新数据,那么更新数据完毕,会dismiss ProgressDialog对象,而且会再显示一个提示对话框,告知数据更新完毕。触发......

比如在android ProgressDialog和后台线程中前台ui线程在显示ProgressDialog,后台线程在下载更新数据,那么更新数据完毕,会dismiss ProgressDialog对象,而且会再显示一个提示对话框,告知数据更新完毕。

触发的事件是下载完毕,这是后台线程知道的,但是后台线程不能直接创建ui组件,这样会产生报错,比如:

这是因为,android只能有一个系统线程来处理绘制UI,用户创建线程不能做这件事情。

那么,需要android提供的Handler类来处理,让用户线程通知UI线程执行。下面说明,后台线程怎么告诉UI线程执行一个过程。

见代码:

01

confirmHandler.post(new Runnable() {

02

@Override

03

public void run() {

04

AlertDialog.Builder builder = new Builder(

05

WelComeMainActivity.this);

06

builder.setMessage("数据更新完毕。");

07

builder.setPositiveButton("确认", new OnClickListener() {

08

@Override

09

public void onClick(DialogInterface dialog,

10

int which) {

11

dialog.dismiss();

12

}

13

});

14

builder.create().show();

15

}

16

});

17

}

18

});

19

t.start();

20

}

21

22

Handler confirmHandler = new Handler(Looper.myLooper());

在Activity中有个成员变量confirmHander,在后台线程内部,向该handler post一个Runnable实例,这样UI线程会执行这个Runnable实例的run方法,而不是创建新的线程。

更新完毕将显示:

赞助本站

人工智能实验室

相关热词: 后台 线程 创建UI组件 UI

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港