AppUpdateManager不会每次都触发

时间:2019-05-17 06:41:58

标签: java android kotlin

我正在实现在Google I / O 2019上宣布的新 AppUpdateManager ,由于某种原因,它并非每次都起作用。

我可以确认它确实显示了一次或两次,但是当我稍后尝试在另一台设备上对其进行测试时,它却无法正常工作。

我如何测试AppUpdateManager,我用降级的版本代码安装了该应用程序,并确保其构建类型与生产版本相同。

这是我的实现方式:

  • 初始化
    private val appUpdateManager by lazy { AppUpdateManagerFactory.create(this) }
    private val appUpdateInfo: Task<AppUpdateInfo> by lazy { appUpdateManager.appUpdateInfo }
  • 然后我将在onCreate中运行它
private fun checkIfAnUpdateExists() {
    appUpdateInfo.addOnCompleteListener {
        if (it.result?.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                && it.result?.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE) == true) {
            appUpdateManager.startUpdateFlowForResult(
                    appUpdateInfo.result,
                    AppUpdateType.FLEXIBLE,
                    this,
                    REQUEST_CODE_UPDATE_APP
            )
        }
    }
}
  • 然后,我将按以下方式实现onActivityResult:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == REQUEST_CODE_UPDATE_APP) {
            val snackBar = Snackbar.make(dl_main_app,
                    getString(R.string.an_update_has_been_downloaded),
                    Snackbar.LENGTH_INDEFINITE)
            snackBar.setAction(getString(R.string.Restart)) {
                run {
                    appUpdateManager.completeUpdate()
                }
            }
            snackBar.show()
        }
    }
}

我想对此尚无任何疑问,如果有人可以指导我完成这项工作,那将非常有帮助。

0 个答案:

没有答案
相关问题