- 博客分类:
- Android
2 实现说明
实现流程
Step One 弹出进度条对话框
Step Two 执行线程,在线程中实现数据的异步加载
Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面
- //添加异步操作
- m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true);
- //mRegsiterHandler.sleep(100);
- new Thread(new Runnable(){
- @Override
- public void run() {
- //加载数据
- result=0;
- try{
- //下载文件
- String url="http://00.00.00.00:80/nationaltest.html";
- HttpClient client = new DefaultHttpClient();
- HttpGet get = new HttpGet(url);
- HttpResponse response;
- response = client.execute(get);
- HttpEntity entity = response.getEntity();
- long length = entity.getContentLength();
- InputStream is = entity.getContent();
- FileOutputStream fileOutputStream = null;
- if (is != null) {
- File file = new File(Environment.getExternalStorageDirectory(), "nationaltest.apk");
- fileOutputStream = new FileOutputStream(file);
- byte[] buf = new byte[1024];
- int ch = -1;
- while ((ch = is.read(buf)) != -1) {
- fileOutputStream.write(buf, 0, ch);
- }
- }
- fileOutputStream.flush();
- if (fileOutputStream != null) {
- fileOutputStream.close();
- }
- result=2;
- }
- catch(Exception ex){
- result=-1;
- }
- //更新界面
- // Update the progress bar
- mHandler.post(new Runnable() {
- public void run() {
- if(result==2)
- install();
- else
- Toast.makeText(m_context, "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();
- }
- });
- m_Dialog.dismiss();
- }}).start();
- }