一般情况下都是用versionCode进行版本大小的判断从而进行判断是否进行app的更新,但是有可能从网站上爬下来的versionCode不准确,有的网站叫做build,所以用versionName进行判断是比较准确的。
网上用versionName进行版本号的判断不多,百度出来的几乎都是用versionCode进行判断,我就像那丁香花姑娘一样惆怅。
所以就自己摸索,就目前的二级版本号,可以直接转为Float类型进行判断,但是公司的版本号后续可能还会加上Beta等,就想着说用字符串分割,数字归数字,字母归字母。然鹅,判断极其复杂,因为情景颇多,所以分割极其不便。在分割比较的过程中,从记忆深处挖掘出了一行代码,直接进行字符串比较 !!!
为什麽要各种搞事情呢?字符串比较它不香吗??
//获取本地的版本号
String localVersion = BaseApplication.getContext().getPackageManager().
getPackageInfo(BaseApplication.getContext().getPackageName(), 0).versionName;
DataBean data = dataBean.getData(); //从网站上爬下来的数据
if (data != null){
//获取线上版本号
String onlineVersion = data.getVersion();
if (localVersion.compareTo(onlineVersion) < 0){ //相等返回0,前者大返回值大于0,前者小返回值小于0
//TODO 进行版本更新操作
}
}
但是搜索上没有搜到,是因为它太简单了?还是因为有弊端?需要各位同胞们指出,在此先谢过~