android自动更新程序
来源:互联网 发布:淘宝账号查询网址 编辑:程序博客网 时间:2024/05/16 10:16
- 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】Android程序自动更新
- android自动更新程序
- Android程序自动更新
- Android 程序自动更新
- Android 程序自动更新
- Android实现程序自动更新
- android程序自动更新
- Android实现程序自动更新
- android 程序自动更新
- Android 程序自动更新
- Android 程序自动更新功能模块实现
- Android 程序自动更新功能模块实现
- Android实现程序自动更新实例教程
- android程序自动更新安装详解
- android为程序添加版本自动更新
- android之程序自动更新的实现
- android之程序自动更新的实现
- android之程序自动更新的实现
- C/C++的一些预定义宏
- unit nine
- zoj 2892
- ExtJS编码规范
- unit ten
- android自动更新程序
- Resin问题
- 三大WEB服务器对比分析(一)
- .net等比生成高质量缩略图
- 三大WEB服务器对比分析(二)(
- Windows 会话管理
- C++ 中使用构造函数初始化列表的原因
- 周末季(2)
- 正则表达式