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

在上一篇文章中我们从服务器读取配置并解析成了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


 

posted @ 2013-08-15 18:57  pangbangb  阅读(227)  评论(0编辑  收藏  举报