我使用一个 Android 应用程序(我们可以称之为“AppA”)来更新另一个应用程序(我们可以称之为“AppB”)。 应用程序“AppA”检查“AppB”的版本名称,如果版本较低则开始更新。
我使用 native 函数“compareTo”检查版本名称。所以这是我的问题: “AppB”版本名称为 9.9,最新版本名称为 9.10,但更新未开始,因为“compareTo”函数结果为“9.9 > 9.10”。 即使我使用像“10.9”或“9.100”这样的新版本名称,9.9 总是更大。
我应该放什么?
最佳答案
您可以使用版本名称 9.9.1
更新它,从"9.9".compareTo("9.9.1") < 0
开始.
您也可以使用9.90
, 9.91
,等等,因为每个较长的字符串都较新。
通过新的更新,您应该发布一个新的比较器来查看每个组件,例如:
int[] compOld = new int[3];
String[] split = versionOld.split(".");
for (int i = 0; i < split.length; i++)
compOld = Integer.parseInt(split[i]);
int[] compNew = new int[3]
...
return compOld[0] < compNew[0] || compOld[1] < compNew[1] || compOld[2] < compNew[2];
或者查看用于语义版本控制的库。
关于java - 使用compareTo增加应用程序版本名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57726201/