public ProgressDialog pBar;      private Handler handler = new Handler();  public void updatedialog(){Dialog dialog = new AlertDialog.Builder(index.this).setTitle("系统更新")          .setMessage("发现新版本,请更新!")// 设置内容          .setPositiveButton("确定",// 设置确定按钮                  new DialogInterface.OnClickListener() {                      public void onClick(DialogInterface dialog,                              int which) {                          pBar = new ProgressDialog(index.this);                          pBar.setTitle("正在下载");                          pBar.setMessage("请稍候...");                          pBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);                          downFile("http://192.168.1.102:7070/hessian/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);  }  

读写SD卡需要开放权限:

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

更多相关文章

  1. Android PopupMenu-点击按钮弹出下拉框
  2. Android 显示确认对话框
  3. android Dialog的确定按钮点击后不取消对话框
  4. FaceBook like 按钮在 Android WebView中的Bug的解决
  5. Android TextView限定行数最大值,点击按钮显示所有内容
  6. Android 实现多个输入框的对话框
  7. Android 取得对话框中EditText的字符串
  8. android 按钮的文字显示不全
  9. Android中开关按钮IOS效果的实现

随机推荐

  1. 分支与循环示例及php模板与html混编示例
  2. Python 模拟员工信息数据库操作的实例
  3. 访问器属性原理与应用场景,获取DOM元素的2
  4. 实例演示vue常用术语、样式与事件绑定、
  5. PHP实例演示分支与循环
  6. PHP基础 -(一)变量、函数、参数
  7. 分支与循环、php模板语法与html混编技巧
  8. PHP:1. 实例演示分支与循环 2. 实例演示ph
  9. Android(安卓)调用WCF实例详解
  10. android的指纹问题