版本更新,估计现在大多数app都需要这样的功能,感觉以前写的比较繁琐,正好这次app需要添加这个功能,就想找个比较简单的方法实现;
众所周知,版本更新大致需要三步走:
第一步:获取当前版本号和服务器版本号
第二步:对比两个版本号是否相同,相同进入主页面,不相同弹出更新对话框
第三部:下载apk
繁琐就繁琐到第三步,在网上看了好多demo,几乎都是两年前的demo,所以比较繁琐,今天我们用一个工具类,两行代码搞定;
第一步:获取当前版本号和服务器版本号
//获得当前版本号
versionCode = AppUtils.getVersionCode(this);
//假设我们在子线程联网后获取服务器版本号和版本名称(真是项目中都是从服务器获取的)
int updateCode = 3;
updateName = "更新免费送英雄,皮肤活动!";
第二步:对比版本号,弹出更新对话框
//然后判断服务器版本号是否和当前版本号一样
if (updateCode == versionCode) {//发送一个handler进入主页面
handler.sendEmptyMessage(GO_HOME);
} else {//弹出对话框提示更新
handler.sendEmptyMessage(SHOW_DIALOG);
}
弹出对话框:
private void showUpdateDialog() {
//弹出对话框提示更新
AlertDialog.Builder adb = new AlertDialog.Builder(SplashActivity.this);
adb.setTitle("发现新版本");
adb.setMessage(updateName);
adb.setCancelable(false);//要么点击确定,要么点击取消。否则不会关闭dialog
adb.setNegativeButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//下载更新的APK
downUpdateAPK();
}
});
adb.setPositiveButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//点击取消进入主页面
handler.sendEmptyMessage(GO_HOME);
}
});
adb.show();
}
最重要最繁琐的一步就是下载apk,我们这里直接使用的工具类UpdateManage,直接拉倒项目中即可使用(最低端有源码下载地址);
使用步骤:
UpdateManage updateManage = new UpdateManage(SplashActivity.this, "http://app.192.168.1.100.com/yzsc.apk");
updateManage.showDownloadDialog();
直接将http://app.192.168.1.100.com/yzsc.apk更改为你们的apk下载路径即可;
demo下载号不要直接运行,我这个apk下载地址是内网的,直接运行没有效果;先把apk下载路径更改以后再运行;
版权声明:本文为Zheng_Jiao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。