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(); 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) { fileOutputStream.write(buf,
0, ch); count += ch;
if (length >
0) { } } } fileOutputStream.flush();
if (fileOutputStream !=
null) { fileOutputStream.close(); } down(); }
catch (ClientProtocolException e) { e.printStackTrace(); }
catch (IOException e) { 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); } }
转载于:https://www.cnblogs.com/lslzmx/archive/2011/12/14/2287191.html
相关资源:各显卡算力对照表!