java - 使用compareTo增加应用程序版本名称

标签 java android function android-studio compareto

我使用一个 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/

相关文章:

java - 将 vector 转换为列表

java - 创建从 sql 查询返回结果集的方法

java - 应用程序强制关闭,但没有强制关闭消息

function - LISP 函数返回更大的数

function - 无效的二进制操作数,缺少理论

java - 在 Jboss 上从 STS(Spring Tool Suite)3 部署 WAR 返回 404

java - onCheckedChangeListener 不适用于 Android Studio

java - 将运行时参数传递给 Hilt 中的构造函数

android - 如何在 Android 的自定义微调器中设置搜索界面

带有回调函数的jquery