在上一篇文章中我们从服务器读取配置并解析成了UpdateInfo对象。这一篇文章将介绍如何将信息比对,并显示更新对话框,具体流程如下:
//判读服务器的版本号和客户端的版本号是否相同
if(isNeedUpdate(versiontext)){
Log.i(TAG, "弹出升级对话框");
showUpdateDialog();
}
在SplashActivity的onCreate方法中判读服务器版本号和客户端版本号是否相同
获取客户端当前版本号的方法
/**
* 获取当前应用程序的版本号
*
* @return
*/
private String getVersion() {
try {
//包管理服务
PackageManager manager = getPackageManager();
//第一个参数为包名
PackageInfo info = manager.getPackageInfo(getPackageName(), 0);
return info.versionName;
} catch (Exception e) {
e.printStackTrace();
return "版本号未知";
}
}
获取服务器版本号并判断是否需要升级
/**
*
* @param version 当前客户端的版本信息
* @return 是否需要更新
*/
public boolean isNeedUpdate(String versiontext){
Log.i(TAG, "进来判断是否需要更新");
try {
UpdateInfoService service = new UpdateInfoService(this);
System.out.println(service);
info = service.getUpdateInfo(R.string.updateurl);
System.out.println(info.getVersion());
String version = info.getVersion();
Log.i(TAG, "服务器版本是"+version);
if(versiontext.equals(version)){
Log.i(TAG, "版本号相同无需升级,进入主界面");
return false;
}else{
Log.i(TAG, "版本号不同,需要升级");
return true;
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this , "获取更新信息异常,进入主界面", Toast.LENGTH_SHORT);
return false;
}
}
如果版本号不同则显示升级对话框
/**
* 升级对话框
*/
public void showUpdateDialog(){
AlertDialog.Builder builder = new Builder(this);
builder.setIcon(R.drawable.icon5);
builder.setTitle("升级提醒");
builder.setMessage(info.getDescription());
//让用户不能取消对话框
builder.setCancelable(false);
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i(TAG, "下载Apk文件" + info.getApkurl());
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i(TAG, "用户取消,进入程序主界面");
}
});
builder.create().show();
}
源代码下载:http://download.csdn.net/detail/lxq_xsyu/5947441
分享到:
相关推荐
Android手机卫士系列的源代码,详细请看手机卫士系列:http://blog.csdn.net/dawanganban/article/category/1562079
Android手机卫士系列的源代码,详细请看手机卫士系列:http://blog.csdn.net/dawanganban/article/category/1562079
Android项目实战——手机安全卫士开发案例解析的word 电子书
Android项目实战——手机安全卫士开发案例解析 随书代码文件
教程名称:手机安全卫士项目开发视频课程目录:【】手机安全卫士_day1【】手机安全卫士_day2【】手机安全卫士_day3【】手机安全卫士_day4【】手机安全卫士_day5【】手机安全卫士_day6【】手机安全卫士_day7【】手机...
移动互联应用开发系列·Android项目实战:手机安全卫士开发案例解析 本源码通过对一款手机安全卫士开发案例的详细解析,讲解了一个完整的Android实际项目的开发过程。该项目涵盖了市场上主流手机卫士的主要功能,...
《Android项目实战:手机安全卫士开发案例解析》通过对一款手机安全卫士开发案例的详细解析,讲解了一个完整的Android实际项目的开发过程。该项目涵盖了市场上主流手机卫士的主要功能,同时,该项目也是对Android...
Android项目实战——手机安全卫士开发案例解析 用于在Eclipse开发环境中关联和查看Android 框架中的源代码事件
安卓Android源码——【手机安全卫士】连接服务器获取更新信息.zip
安卓Android源码——【手机安全卫士02】连接服务器获取更新信息.rar
Android手机卫士系列的源代码,详细请看手机卫士系列:http://blog.csdn.net/dawanganban/article/category/1562079
Android应用源码安卓手机安全卫士更新版.zip
基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计与开发.docx基于Android的手机安全卫士的设计...
安卓Android源码——安卓手机安全卫士更新版.zip
安卓Andriod源码——【手机安全卫士02】连接服务器获取更新信息.zip
安卓Android源码——【手机安全卫士02】连接服务器获取更新信息.zip
手机安全卫士开发案例解析(源码),手机安全卫士开发案例解析(源码)
android手机安全卫士。本案列涵盖了当前主流的android开发技术,并有手机防盗、通讯卫士、软件管家、手机杀毒、缓存清除、流量统计、高级工具、设置中心9大功能模块。