如何知道 DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS 更新可用性的起源处的 AppUpdateType?

rol*_*ndl 6 android in-app-update

我目前正在致力于实施 Google 新的“应用内更新”库。

根据文档,我们可以向用户提示“灵活”或“即时”的UI。在这两种情况下,它将启动更新的下载(阻止或不阻止)。

如果在下载过程中我终止了我的应用程序并在下载结束之前重新启动它,那么当我询问“更新可用性”时,API 会给我答案UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS

文档仅在立即更新的情况下提到此可用性,因此我们必须使用以下代码恢复全屏 UI:

appUpdateManager.startUpdateFlowForResult(appUpdateInfo, IMMEDIATE, this, 1000)
Run Code Online (Sandbox Code Playgroud)

问题是,当下载灵活更新时,我也有这种可用性,在这种情况下,我不想启动全屏下载 UI,因为它是灵活更新...

UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS当 API 返回可用性时,有什么方法可以知道我们是处于灵活更新还是立即更新状态?

预先感谢您的帮助!

小智 4

API 不会返回更新是作为立即流程还是灵活流程启动的。

如果您想确保恢复之前开始的相同流程类型,今天您有 2 个选择:

  • 重新运行您运行的相同逻辑来决定最初启动什么类型:如果逻辑是确定性的,结果将是相同的,您将恢复相同类型的流
  • 记住您明确启动的类型(保留此信息)

请注意,恢复时选择错误的流类型不是问题:它们在内部以相同的方式工作,因此您可以启动灵活的流并立即恢复它,反之亦然,没有任何问题。

来源:我从事 Play Core SDK 工作