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

更多相关文章

  1. android 时间对话框
  2. Android设置RadioButton在文字的右边
  3. Win8风格的按钮、ToggleButton、SeekBar
  4. 【Android】编写一个简易计算机
  5. Android(安卓)ProgressDialog的使用
  6. android 滑动加载数据
  7. android 对话框
  8. android sqlite 增删查 demo
  9. Android(安卓)BaseAdapter如何获得每一项并添加按钮事件

随机推荐

  1. android MediaRecorder 视频录制
  2. Android(安卓)sensor介绍
  3. Android摄像头视频帧数据测试代码
  4. Ubuntu 14.04 配置Android编译环境
  5. android 获取网络图片
  6. Android中Parcelable接口用法
  7. android 性能优化
  8. android drawable 使用shape实现复杂图像
  9. Android(安卓)3.0 Platform Highlights
  10. Android: wakelock