Android 用versionName判断版本大小(是否进行版本更新)

一般情况下都是用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 进行版本更新操作
     }
}

但是搜索上没有搜到,是因为它太简单了?还是因为有弊端?需要各位同胞们指出,在此先谢过~

--------------------------------------------------------------------------------------

(2020.11.24更新)

经评论区前辈@JerryCoder1024提醒,这样做是有弊端的,如果非要用versionName比较的话,可以考虑麻烦一点的,通过 “ . ” 来切割成字符串成数组,转成int类型去比较,按顺序比较,比较到split[length - 2]的处,若有对比出大小之后就停止比较,若都相等,再对最后split[length - 1]进行判断。若split[length - 1]都是数字就容易判断,但却有可能包含类似于beta1、beta2这样的情况,emmmm。。。后续有想到好的方法,再来更新,如果有前辈们有好的方法,请不吝赐教。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值