DialogFragment не исключен в прямом эфире для некоторого сценария - PullRequest
0 голосов
/ 09 июня 2019

Я использую AppCompatDialogFragment.Мой dialogFragment не отклоняется по некоторому сценарию.

Поток сценария:

  1. Отображение диалогового фрагмента
  2. Диалоговый интерфейс dialogFragment имеет кнопку Button.In нажатие кнопки вызывает API, и после ответа API я закрываю диалоговое окно иустановите для myObject значение null, так как мне не нужен этот объект.
  3. Затем я показываю второе диалоговое окно, и пользователь вручную закрывает это диалоговое окно.
  4. После закрытия второго диалогового окна пользователи могут взаимодействовать (щелкните на этомкнопка) с первым dialogFragment

Я получаю сбой при нажатии кнопки dialogFragment при щелчке пустой ссылки на объект myObject, для которой ранее было установлено значение null.

Пользователь может нажать кнопку после dialogFragment.отклонить вызов.Поскольку я установил для myObject значение null в первый раз, поэтому я получаю Exception. Но пользователь не должен нажимать второй раз, как я вызвал dismiss ().

Я не могу сгенерировать это исключение и его возникновениев некоторых случаях в прямом эфире, и я проследил сценарий с помощью Crash Log

Сбой происходит только тогда, когда пользователь может нажать второй раз

Почему dialogFragment не отклоняет некоторыедело?Я использую dialogFragment.dismiss() метод для увольнения.

Это происходит из-за потери состояния?Но я думаю, что в случае потери состояния я должен получить исключение для IllegalStateException

Обходной путь может быть getSupportFragmentManager().executePendingTransactions().

Кто-нибудь может объяснить сценарий?почему это происходит или как это решить.

Заранее спасибо

...