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


            
 

2 实现说明

 

   实现流程

 

  Step One 弹出进度条对话框

 

  Step Two 执行线程,在线程中实现数据的异步加载

 

  Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面

Java代码 复制代码  收藏代码
  1. //添加异步操作    
  2.              m_Dialog=ProgressDialog.show(m_context, "请等待...""正在下载安装文件,请稍后...",true);  
  3.              //mRegsiterHandler.sleep(100);  
  4.              new Thread(new Runnable(){  
  5.   
  6.                     @Override  
  7.                     public void run() {  
  8.                    //加载数据  
  9.                          result=0;  
  10.                           try{  
  11.                               //下载文件  
  12.                               String url="http://00.00.00.00:80/nationaltest.html";  
  13.                                 HttpClient client = new DefaultHttpClient();       
  14.                               HttpGet get = new HttpGet(url);       
  15.                               HttpResponse response;       
  16.                                 
  17.                               response = client.execute(get);       
  18.                               HttpEntity entity = response.getEntity();       
  19.                               long length = entity.getContentLength();       
  20.                               InputStream is = entity.getContent();       
  21.                               FileOutputStream fileOutputStream = null;       
  22.                               if (is != null) {       
  23.                                   File file = new File(Environment.getExternalStorageDirectory(), "nationaltest.apk");       
  24.                                   fileOutputStream = new FileOutputStream(file);       
  25.                                   byte[] buf = new byte[1024];       
  26.                                   int ch = -1;       
  27.                                   while ((ch = is.read(buf)) != -1) {       
  28.                                       fileOutputStream.write(buf, 0, ch);       
  29.                                   }       
  30.                              }       
  31.                              fileOutputStream.flush();       
  32.                              if (fileOutputStream != null) {       
  33.                                  fileOutputStream.close();       
  34.                              }    
  35.                              result=2;  
  36.                           }  
  37.                          catch(Exception ex){  
  38.                              result=-1;   
  39.                          }             
  40.                           
  41.                     //更新界面  
  42.                          // Update the progress bar   
  43.                          mHandler.post(new Runnable() {       
  44.                              public void run() {                            
  45.                                  if(result==2)  
  46.                                       install();  
  47.                                        else  
  48.                                            Toast.makeText(m_context, "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();      
  49.                                  }                    
  50.                              });  
  51.                           
  52.                       
  53.                      m_Dialog.dismiss();  
  54.                     }}).start();  
  55.                
  56.               }   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值