gpt4 book ai didi

java - 应用内更新重新启动过时的版本而不是新安装的版本

转载 作者:行者123 更新时间:2023-12-02 00:43:25 25 4
gpt4 key购买 nike

我想实现应用内更新。通过以下代码,它可以正确提示用户要求他同意更新,下载代码并安装。但随后系统会重新启动之前安装的应用程序版本,并再次执行更新过程。下面的代码有什么问题吗?

onCreate()方法中:

        appUpdateManager = AppUpdateManagerFactory.create(this);
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (mPrefs == null) {
mPrefs = getSharedPreferences("******" + appName, Context.MODE_PRIVATE);
}
int updateRequestCounter = mPrefs.getInt("updateRequestCounter", 0);

if ((updateRequestCounter == 0) || (updateRequestCounter == 5) || (updateRequestCounter % 10 == 0)) {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE) {
switch (appUpdateInfo.installStatus()) {
case InstallStatus.FAILED: case InstallStatus.REQUIRES_UI_INTENT: case InstallStatus.UNKNOWN:
try {
appUpdateManager.startUpdateFlowForResult(
appUpdateInfo,
AppUpdateType.IMMEDIATE,
this,
MY_REQUEST_CODE);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
break;
default:
break;
}
}
mPrefs.edit().putInt("updateRequestCounter", 0).apply();

} else {
mPrefs.edit().putInt("updateRequestCounter", ++updateRequestCounter).apply();
}
});

不知道这是否是原因:我将此代码与应用程序的生产版本而不是内部测试版本一起使用。

最佳答案

您缺少更新安装部分。您需要调用 appUpdateManger.completeUpdate() 来安装更新。 AppUpdateManager 将为您重新启动应用程序。

在应用的发布版本中测试更新安装。

关于java - 应用内更新重新启动过时的版本而不是新安装的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57918283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com