zoukankan      html  css  js  c++  java
  • 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);
        }
      
    }
  • 相关阅读:
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    flowable 获取当前任务流程图片的输入流
    最新 接口api插件 Swagger3 更新配置详解
    springboot 集成 activiti 流程引擎
    java 在线考试系统源码 springboot 在线教育 视频直播功能 支持手机端
    阿里 Nacos 注册中心 配置启动说明
    springboot 集成外部tomcat war包部署方式
    java 监听 redis 过期事件
    springcloudalibaba 组件版本关系
    java WebSocket 即时通讯配置使用说明
  • 原文地址:https://www.cnblogs.com/zhwl/p/2403282.html
Copyright © 2011-2022 走看看