AppUpdateManager не запускается каждый раз - PullRequest
0 голосов
/ 17 мая 2019

Я внедряю новый AppUpdateManager , который был анонсирован в Google I / O 2019, и по какой-то причине он не работает каждый раз.

Я могу подтвердить, что он показывался один или два раза, но когда я позже попытался протестировать его на другом устройстве, он просто не работал.

Как я тестировал AppUpdateManager, я установил приложение с устаревшим кодом версии и убедился, что это тот же тип сборки, который был опубликован в производстве.

Вот как я это реализовал:

  • 1012 * инициализация *
    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()
        }
    }
}

Полагаю, вопросов по этому вопросу пока нет, было бы очень полезно, если бы кто-нибудь смог мне помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...