开始尝试应用内更新。一切似乎都很完美。
但是......当进入一些边缘情况时,例如,在下载更新的过程中取消更新过程,API 出于某种原因停止按预期工作。
示例:我开始我的活动并在 onResume() 中做第一件事,我这样做:
//In app update code. Only works for Android 5.0 and above.
if (Build.VERSION.SDK_INT >= 21) {
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
appUpdateInfoTask.addOnSuccessListener(appUpdateInfo -> {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE) {
try {
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE, this, 1333);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
} else if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
// If an in-app update is already running, resume the update.
try {
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE,this, 1333);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
}
});
}
当我单击更新按钮并出现更新屏幕时,我立即取消更新。它使用 onActivityResult 返回请求代码 (1333) 和结果代码 (STATUS_UNKNOWN = 0) 。我在那个 if 语句中调用了 finish(),因为这是一个必须更新的关键更新。
现在的问题是,当第二次进入应用程序时,再次触发 onActivityResult,没有显示来自应用程序更新 API 的任何对话框,只是在 onActivityResult 回调中返回请求/结果代码。
有类似问题的人吗?