ANdroid跟新客户端

import java.io.File;     
  
import java.io.FileOutputStream;   
  
import java.io.IOException;     
  
import java.io.InputStream;     
 
import org.apache.http.HttpEntity;     
import org.apache.http.HttpResponse;     
import org.apache.http.client.ClientProtocolException;     
import org.apache.http.client.HttpClient;     
import org.apache.http.client.methods.HttpGet;     
import org.apache.http.impl.client.DefaultHttpClient;     
     
import android.app.AlertDialog;     
import android.app.Dialog;     
import android.app.ProgressDialog;     
import android.content.DialogInterface;     
import android.content.Intent;     
import android.net.Uri;     
import android.os.Bundle;     
import android.os.Environment;     
import android.os.Handler;     
     
public class Update extends BaseActivity {     
   public ProgressDialog pBar;     
   private Handler handler = new Handler();     
   
    @Override     
    protected void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.update);     
        Dialog dialog = new AlertDialog.Builder(Update.this).setTitle("系统更新")     
                .setMessage("发现新版本,请更新!")// 设置内容     
                .setPositiveButton("确定",// 设置确定按钮     
                        new DialogInterface.OnClickListener() {     
   
                            @Override     
                            public void onClick(DialogInterface dialog,     
                                    int which) {     
                               pBar = new ProgressDialog(Update.this);     
                               pBar.setTitle("正在下载");     
                                pBar.setMessage("请稍候...");     
                                pBar     
                                        .setProgressStyle(ProgressDialog.STYLE_SPINNER);     
                               downFile("http://url:8765/OA.apk");      
                                      
                            }     
   
                       }).setNegativeButton("取消",       
                        new DialogInterface.OnClickListener() {     
                           public void onClick(DialogInterface dialog,     
                                    int whichButton) {     
                                // 点击"取消"按钮之后退出程序     
                                    
                            }     
                        }).create();// 创建     
        // 显示对话框     
        dialog.show();     
     
    }     
     
    void downFile(final String url) {     
        pBar.show();     
        new Thread() {     
            public void run() {     
                HttpClient client = new DefaultHttpClient();     
                // params[0]代表连接的url     
                HttpGet get = new HttpGet(url);     
                HttpResponse response;     
                try {     
                  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(), "OA.apk");     
                       fileOutputStream = new FileOutputStream(file);     
                            
                        byte[] buf = new byte[1024];     
                      int ch = -1;     
                      int count = 0;     
                       while ((ch = is.read(buf)) != -1) {     
                          // baos.write(buf, 0, ch);     
                           fileOutputStream.write(buf, 0, ch);     
                           count += ch;     
                           if (length > 0) {     
                              
                          }     
  
                    }     
    
                  }     
                  fileOutputStream.flush();     
                   if (fileOutputStream != null) {     
                       fileOutputStream.close();     
                 }     
                   down();     
                } catch (ClientProtocolException e) {     
                    // TODO Auto-generated catch block     
                  e.printStackTrace();     
               } catch (IOException e) {     
                   // TODO Auto-generated catch block     
                    e.printStackTrace();     
                }     
            }     
    
       }.start();     
    
   }     
     
   void down() {     
      handler.post(new Runnable() {     
         public void run() {     
               pBar.cancel();     
  update();     
}     
});          
    }     
     
   void update() {     
    
        Intent intent = new Intent(Intent.ACTION_VIEW);     
        intent.setDataAndType(Uri.fromFile(new File("/sdcard/OA.apk")),     
                "application/vnd.android.package-archive");    
        startActivity(intent);     
    }        
} 

posted @ 2011-04-02 11:49  pandans  阅读(195)  评论(0编辑  收藏  举报