前言:因为项目更新的时候需要一些版本号的信息,后台返回两个string,一个是最低兼容版,一个是最新版。所以拿到数据后要比较一下,所以封装了一个Common包来处理。

  Step 1

  废话不多说,直接上代码。

 public class Common{
/**
* 获取版本号
*
* @return 当前应用的版本号
*/
public static String getVersion(Context context) {
try {
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(context.getPackageName(),
0);
String version = info.versionName;
return version;
} catch (Exception e) {
e.printStackTrace();
return "";
}
} /**
* 版本号比较
*
* @param version1
* @param version2
* @return
*/
public static int compareVersion(String version1, String version2) {
if (version1.equals(version2)) {
return 0;
}
String[] version1Array = version1.split("\\.");
String[] version2Array = version2.split("\\."); int index = 0;
// 获取最小长度值
int minLen = Math.min(version1Array.length, version2Array.length);
int diff = 0;
// 循环判断每位的大小
Log.d("HomePageActivity", "verTag2=2222="+version1Array[index]);
while (index < minLen
&& (diff = Integer.parseInt(version1Array[index])
- Integer.parseInt(version2Array[index])) == 0) {
index++;
}
if (diff == 0) {
// 如果位数不一致,比较多余位数
for (int i = index; i < version1Array.length; i++) {
if (Integer.parseInt(version1Array[i]) > 0) {
return 1;
}
} for (int i = index; i < version2Array.length; i++) {
if (Integer.parseInt(version2Array[i]) > 0) {
return -1;
}
}
return 0;
} else {
return diff > 0 ? 1 : -1;
}
} }

  Step 2

  使用方法:

  如何获取版本号:   Common.getVersion(context)

  如何比较版本号:   Common.compareVersion(Common.getVersion(context),“要比较的版本号”)

1.上面的值为-1 代表:前者小于后者

            2.上面的值为0 代表:两者相等

              3.上面的值为1 代表:前者大于后者 

最新文章

  1. maven核心概念4
  2. 问题-delphi 程序在某电脑中显示???问号 乱码
  3. Linux基础(二)
  4. MVC学习笔记3 - JsRender
  5. [转]android4.0.3 修改启动动画和开机声音
  6. Cocos2d-X 精灵、动作效果
  7. [记录]Zabbix3.4配置监控Oracle12c的存活状态和表空间使用率
  8. windows相关命令记录
  9. Python排序算法——选择排序
  10. Java基础--枚举
  11. &#39;RegAsm.exe&#39; 不是内部或外部命令
  12. 如何简单地理解Python中的if __name__ == &#39;__main__&#39;(https://blog.csdn.net/yjk13703623757/article/details/77918633)
  13. memcache、redis、mongoDB 如何选择?
  14. SQL Server跨服务器建立视图
  15. weblogic配置集群(二)
  16. Java 对象初始化生命周期
  17. Writing a Kernel in C++
  18. javascript——对象的概念——函数 1 (函数对象的属性和方法)
  19. 小程序里打开app的实现过程
  20. java 24小时倒计时案例

热门文章

  1. 利用XML序列化和Asp.Net Web缓存实现站点配置文件
  2. node官方docker镜像运行bower 提示 permission denied 解决方法
  3. Nobody gives away anything valuable for free.
  4. Android 超简单的拖动按钮 悬浮按钮 吸附按钮
  5. 在window下, Java调用执行bat脚本
  6. 解决mysql连接输入密码提示Warning: Using a password on the command line interface can be insecure
  7. FPGA工具篇——编辑器Notepad++
  8. pta编程题19 Saving James Bond 2
  9. pat乙级1034
  10. IOS 强指针(strong)和弱指针(weak)