当前位置: 代码迷 >> Android >> (Android实战)ProgressDialog+Thread兑现弹出进度条数据异步加载(配有效果图)
  详细解决方案

(Android实战)ProgressDialog+Thread兑现弹出进度条数据异步加载(配有效果图)

热度:60   发布时间:2016-05-01 19:10:57.0
(Android实战)ProgressDialog+Thread实现弹出进度条数据异步加载(配有效果图)

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();                           } 

?

  相关解决方案