Android自动更新代码
来源:互联网 发布:windows校时客户端 编辑:程序博客网 时间:2024/05/03 18:14
http://www.android-study.com/wangluobiancheng/444.html
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();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.update);Dialog dialog = new AlertDialog.Builder(Update.this).setTitle("系统更新").setMessage("发现新版本,请更新!")// 设置内容.setPositiveButton("确定",// 设置确定按钮new DialogInterface.OnClickListener() {@Overridepublic 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]代表连接的urlHttpGet 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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.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);}}
0 0
- Android自动更新代码
- Android自动更新代码
- android代码自动更新
- Android 自动更新代码
- Android自动更新代码
- android自动更新功能实现 代码
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能的代码实现
- Android应用自动更新功能代码实现
- SQL2025N: An I/O error "-50" occurred on media "TSM".
- C语言,数组
- scanf
- Android中的消息通知(NotificationManager和Notification)
- LoadRunner录制脚本问题
- Android自动更新代码
- iOS开发工具-网络封包分析工具Charles
- 第07章-体绘制(1)
- 针对android 异常反馈处理系统搭建
- 【BUG】 "SetDestination" can only be called on an active agent that has been placed on a NavMesh.
- string(未完待续)
- 关于typedef的用法总结
- PRML(Pattern Recognition And Machine Learning)学习【2】
- android中文参数传到java tomcat后台变成乱码