Краш при показе диалога из колбэка, пришедшего после сворачивания
В Crashlytics регулярно приходит IllegalStateException с текстом о выполнении действия после сохранения состояния. Стек указывает на транзакцию фрагментов: ответ от сервера приходит асинхронно, и в обработчике показывается диалог с результатом. Воспроизводится, если свернуть приложение сразу после отправки запроса.
Какое решение здесь правильное?
- Показывать диалог, только когда экран не ниже состояния STARTED, а пришедший раньше результат держать в состоянии
- Обернуть транзакцию в try/catch: исключение перехватывается, а диалог откроется при следующем показе экрана
- Использовать транзакцию с разрешённой потерей состояния — это штатный способ убрать такой краш без изменения логики экрана
- Перенести показ диалога в момент создания экрана: там состояние ещё не сохранено, и транзакция пройдёт без исключения
