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

更多相关文章

  1. Android(安卓)弹出对话框Dialog
  2. 有关于android弹出框
  3. Android检测网络连接并提示
  4. android 手电筒demo
  5. android之点击事件ImageView切换
  6. Android(安卓)断点续传
  7. android的四种点击事件的设置
  8. android 之Dialog对话框(简易版)
  9. Android(安卓)点击按钮,文本文字改变

随机推荐

  1. Android中ImageView和VideoView铺满父元
  2. Android(安卓)分析内存的使用情况
  3. android调用unity
  4. Android Step by Step (1)——第一个Andr
  5. 基本组件之列表视图
  6. Windows如何配置Android的ADB环境变量
  7. Android(安卓)URL scheme
  8. Android(安卓)ListView 技巧 (一) Androi
  9. Android_TextView属性介绍
  10. android私有目录直接读取