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 进行版本更新操作
}
}
但是搜索上没有搜到,是因为它太简单了?还是因为有弊端?需要各位同胞们指出,在此先谢过~
Android 用versionName判断版本大小(是否进行版本更新)的更多相关文章
- android自适应屏幕方向和大小
一:不同的layout Android手机 屏幕 大小不一,有480x320, 640x360, 800x480.怎样才能让App自动 适应不同的屏幕 呢? 其实很简单,只需要在res目录下 ...
- Swift3 获取版本号,比较版本大小
Swift获取应用版本号:version 1.获取本地版本号 /// 获取本地版本号 func getLocalVersion() -> String { var localVersion:St ...
- apk比较版本大小
Java String.compareTo(), 此方法如果这个字符串是等参数字符串那么返回值0,如果这个字符串是按字典顺序小于字符串参数那么返回小于0的值, 如果此字符串是按字典顺序大于字符串参数 ...
- Android获取apk的版本及包名等信息
import android.app.Activity; import android.content.Context; import android.content.pm.ApplicationIn ...
- 我的Android进阶之旅------>Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi")
Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...
- 【聊技术】在Android中实现自适应文本大小显示
本周的聊技术话题和大家说说如何在Android中实现自适应文本大小显示. 想象一下,在布局中,通常显示文本的区域大小是固定的,但是文本长度并不总是固定的.比如列表中的文章标题.界面下方的按钮文本等等. ...
- Android之hint提示字体大小修改,显示完全
Android之hint提示字体大小修改,显示完全 1.工作中遇到一个问题,就是自定义EditText的hint提示在超大字体下会显示不全, 2.然后在网上搜索了一下,在这里记录一下,分享给大家,在此 ...
- Android 网络连接判断与处理
Android网络连接判断与处理 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="and ...
- 【原创】Android 4.4前后版本读取图库图片方式的变化
Android 4.4前后版本读取图库图片方式的变化 本文讲述Android 4.4(KitKat)前后访问图库以及访问后通过图片路径读取图片的变化 Android 4.4(KitKat)以前 ...
随机推荐
- linux实现shell脚本监控磁盘内存达到阈值时清理catalina.out日志
想在服务器上写一个shell脚本,在磁盘使用率达到80%时,自动清理掉一些没有用的日志文件,根据这个想法,在生产环境上写了一个以下脚本,按照该流程,可实现在linux环境做一个定时任务来执行shell ...
- JavaScript运算符与流程控制
JavaScript运算符与流程控制 运算符 赋值运算符 使用=进行变量或常量的赋值. <script> let username = "YunYa"; < ...
- front-end——HTML5/CSS3基础
概述 1.什么是前端 前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页,随着互联网技术的发展,html5,css3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完 ...
- servlet执行
WEB编程阶段 在WEB编程中,我们可以通过浏览器访问WEB服务器上的资源.WEB服务器就是另一台计算机 浏览器的入口不同(访问路径),访问的资源也不同. 为了灵活实现的不同路径(/hello)执行不 ...
- 443端口被占用无法启动解决办法(如何查找进程ID)
摘自CSDN博客,原文地址:http://blog.csdn.net/pet8766/article/details/8186955 netstat -ano|findstr "443&qu ...
- [Abp vNext 源码分析] - 23. 二进制大对象系统(BLOB)
一.简介 ABP vNext 在 v 2.9.x 版本当中添加了 BLOB 系统,主要用于存储大型二进制文件.ABP 抽象了一套通用的 BLOB 体系,开发人员在存储或读取二进制文件时,可以忽略具体实 ...
- c++ string类型举例(递归预习的边界)
#include <iostream> #include <string> using namespace std; int main ( ) { string str; // ...
- luogu P1784 数独 dfs 舞蹈链 DXL
LINK:数独 这道题好难 比DXL模板题要难上不少. 首先 还是考虑将行当做决策 那么 一共有\(9*9*9=729\) 个决策. 考虑列用来填充 需要有的条件为 某个位置能能放一次\(9*9\) ...
- 4.19 ABC F path pass i 容斥 树形dp
LINK:path pass i 原本想了一个点分治 yy了半天 发现重复的部分还是很难减掉 况且统计答案的时候有点ex. (点了别人的提交记录 发现dfs就过了 于是yy了一个容斥 发现可以直接减掉 ...
- luogu 4331 [BalticOI 2004]Sequence 数字序列
LINK:数字序列 这是一道论文题 我去看了一眼论文鸽的论文. 发现讲的还算能懂.可并堆的操作也讲的比较清晰. 对于这道题首先有一个小trick 我们给a数组全部减去其对应的下标这样我们求出来的b数组 ...