Отложенное обновление

Скачивание обновления

После подтверждения доступности обновления, вы можете запустить сценарий отложенного обновления, первым шагом которого является фоновое скачивание обновления.
Для отслеживания процесса скачивания необходимо добавить слушатель, используя метод registerListener()

Пример вызова метода registerListener()

updateManager.registerListener { state ->
    if (state.installStatus == InstallStatus.DOWNLOADED) {
        // Update is ready to install
    }           
}

Объект state описывает текущий статус скачивания обновления. Объект содержит:

  • installStatus — статус установки обновления, если пользователь уже устанавливает обновление в текущий момент времени:
    • DOWNLOADED (1) — скачано. 

    • DOWNLOADING (2) — скачивается. 

    • FAILED (3)  ошибка. 

    • INSTALLING (4) - устанавливается. 

    • PENDING (5)  в ожидании. 

    • UNKNOWN (0)  по умолчанию. 
  • bytesDownloaded  количество загруженных байт. 
  • totalBytesToDownload  общее количество байт, которое необходимо скачать. 
  • installErrorCode  код ошибки во время скачивания. Детальнее с возможными ошибками можно ознакомиться в разделе Возможные ошибки.

Если необходимости в слушателе больше нет, то воспользуйтесь методом удаления слушателя unregisterListener(), передав в метод ранее зарегистрированный слушатель. 

Пример вызова метода unregisterListener()

updateManager.unregisterListener(listener)

Для запуска скачивания обновления приложения вызовите метод startUpdateFlow(), поместив в него объект AppUpdateInfo, полученный в методе getAppUpdateInfo().

Объект AppUpdateInfo после однократного использования становится невалидным. Для повторного вызова метода startUpdateFlow() запросите AppUpdateInfo повторно используя метод getAppUpdateInfo(). 

Пример вызова метода startUpdateFlow()

updateManager
    .startUpdateFlow(appUpdateInfo, AppUpdateOptions.Builder().build())
    .addOnSuccessListener { resultCode ->
 
    }
    .addOnFailureListener { throwable ->
 
    }

Если пользователь подтвердил скачивание обновления, то resultCode = Activity.RESULT_OK, если отказался, то resultCode = Activity.RESULT_CANCEL.

Метод может вернуть ошибку. Возможные ошибки

После получения статуса “DOWNLOADED” в слушателе возможно вызвать метод установки обновления. Рекомендуется уведомить пользователя о том, что обновление готово к установке.

Установка обновления

Для запуска установки обновления вызовите метод completeUpdate().

Пример вызова метода completeUpdate()

updateManager
    .completeUpdate()
    .addOnFailureListener { throwable ->
                 
    }

Обновление происходит через нативный инструмент android. В случае успешного обновления приложение закроется. 

На этапе обновления могут возникнуть ошибки. Возможные ошибки

Обновлено 26 июля 2023 г.
Was this information helpful?