android 程序自动更新

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"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值