- 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);
- }
- }
android自动更新程序
最新推荐文章于 2024-09-02 18:19:21 发布