Android开发APK更新下载自动安装打开

private ProgressBar downLoadPB; //下载APK进度条private TextView allMount; //显示APK总大小的控件
private TextView currentMount; //显示当前已下载大小的控件
private TextView info_TV; //显示下载中或已完成
//下载方法(用Xutlis3的文件下载方法)
//下载服务器上的APK
private void getApkFromService(){
String url = "http://10.69.10.55:8989/dingding/manyu.apk";
String fileStr = Environment.getExternalStorageDirectory().toString()+"/manyu.apk";
RequestParams params = new RequestParams(url);
//自定定义保存路径
params.setSaveFilePath(fileStr);
//自动为文件命名
//params.setAutoRename(true);
x.http().post(params, new Callback.ProgressCallback<File>() {
@Override
public void onSuccess(File result) {
info_TV.setText("已完成...");
//apk下载完成后,调用系统的安装方法安装后并打开APK
Intent i = new Intent(Intent.ACTION_VIEW);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive");    //该行代码的作用是APK安装完毕后打开
startActivity(i);
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.v("TAG"," onError********************************"+ex.toString());
Toast.makeText(DownLoadApkActivity.this,"onError()"+ex.toString(),Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(CancelledException cex) {
}

@Override
public void onFinished() {

}

//网络请求之前的回调方法
@Override
public void onWaiting() {

}

//网络请求开始的时候回调
@Override
public void onStarted() {

}
//下载的时候不断回调的方法
@Override
public void onLoading(long total, long current, boolean isDownloading) {
//文件总大小和当前进度
float a_B = (float)total; //单位是B    需要下载的文件总大小
float b_B = (float)current; //单位是B /1048576      当前已经下载文件大小
float total_M = a_B/1048576;
float current_M = b_B/1048576;
//进度条显示下载进度以及文本显示文件总大小以及当前已经下载量大小
downLoadPB.setMax((int)total_M); //总大小单位是M
downLoadPB.setProgress((int)current_M); //当前已经下载的大小单位是M
allMount.setText(subFloat(total_M,2)+"M");
currentMount.setText(subFloat(current_M,2)+"M");

}
});

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值