3

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

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

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

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

appUpdateManager.startUpdateFlowForResult(appUpdateInfo, IMMEDIATE, this, 1000)

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

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

预先感谢您的帮助!

4

1 回答 1

1

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

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

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

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

资料来源:我在 Play Core SDK 上工作

于 2020-04-15T18:23:02.560 回答