Как узнать AppUpdateType в источнике доступности обновления DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS?

В настоящее время я работаю над реализацией новой библиотеки Google "Обновление в приложении".

Согласно документации, мы можем предложить пользователю "гибкий" или "немедленный" пользовательский интерфейс. В обоих случаях запускается загрузка обновления (блокируется или нет).

Если во время этой загрузки я убиваю свое приложение, и они перезапускают его до окончания загрузки, когда я спрашиваю о "наличии обновлений", API дает мне ответ UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS,

В документации упоминается об этой доступности только в случае немедленного обновления, поэтому мы должны восстановить полноэкранный интерфейс с помощью следующего кода:

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

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

Есть ли способ узнать, если мы находимся в гибком или немедленном обновлении, когда API возвращается UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS как наличие?

Заранее спасибо за вашу помощь!

0 ответов

API не возвращает информацию о том, было ли запущено обновление в виде немедленного или гибкого потока.

Если вы хотите возобновить тот же тип потока, который вы начали раньше, у вас есть 2 варианта сегодня:

  • повторно запустите ту же логику, что и вы, чтобы решить, какой тип начать изначально: если логика детерминирована, результат будет таким же, и вы возобновите тот же тип потока
  • запомните, какой тип вы запустили явно (сохраните эту информацию)

Обратите внимание, что выбор неправильного типа потока при возобновлении не является проблемой: внутри они работают одинаково, поэтому вы можете запустить гибкий поток и возобновить его немедленно и наоборот, без каких-либо проблем.

Источник: я работаю над Play Core SDK

Другие вопросы по тегам