Самый простой способ обойти это - просто поставить блок try-catch вокруг consentForm.show()
и поймать исключение BadTokenException.
Это не совсем чисто, но, вероятно, это происходит, когда заканчивается действие (может быть, пользователь закрывает приложение из «Недавних» прямо во время загрузки диалога).
Если бы это был мой проект, я сначала попытался бы добавить это, если у вас есть заявление (хотя вам не нужен MainActivity.this.
часть, вы можете просто позвонить isFinishing()
и isDestroyed()
напрямую).Поскольку вы ссылаетесь на Контекст действия, об этом следует позаботиться.
Однако, если он все еще падает, вам следует сначала изучить его воспроизведение.Попробуйте добраться до вызова displayConsentForm()
, а затем закройте приложение из списка «Последние».Поиграйте со временем, и вы, вероятно, воспроизведете аварию.Если нет, то просто добавьте try-catch.Активность не отображается, поскольку она выдает эту ошибку, поэтому пользователь фактически не находится в приложении.