1 效果图
2 实现说明
实现流程
Step One 弹出进度条对话框
Step Two 执行线程,在线程中实现数据的异步加载
Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面
3源码
//添加异步操作 m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true); //mRegsiterHandler.sleep(100); new Thread(new Runnable(){ @Override publicvoid 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 =newbyte[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() { publicvoid run() { if(result==2) install(); else Toast.makeText(m_context, "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show(); } }); m_Dialog.dismiss(); }}).start(); }