手机安全卫士开发系列(4)——显示更新对话框

来源:互联网 发布:动态面板数据举例 编辑:程序博客网 时间:2024/06/18 04:08

在上一篇文章中我们从服务器读取配置并解析成了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() {@Overridepublic void onClick(DialogInterface dialog, int which) {Log.i(TAG, "下载Apk文件" + info.getApkurl());}});builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Log.i(TAG, "用户取消,进入程序主界面");}});builder.create().show();}


源代码下载:http://download.csdn.net/detail/lxq_xsyu/5947441


原创粉丝点击