2

开始尝试应用内更新。一切似乎都很完美。

但是......当进入一些边缘情况时,例如,在下载更新的过程中取消更新过程,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 回调中返回请求/结果代码。

有类似问题的人吗?

4

1 回答 1

0

看起来同样的问题存在开放的错误。https://issuetracker.google.com/issues/133092990。根据评论,它的 Play-store 问题将在接下来的几周内发布。

于 2019-06-06T07:34:12.267 回答