Ответ 1
Какова цель этой проверки?
Не добавлять фрагмент дважды, хотя я предпочитаю проверять, существует ли фрагмент вместо того, чтобы полагаться на Bundle
null
.
Что произойдет, если его там нет?
Изначально ничего, поскольку Bundle
будет null
, когда действие сначала будет создано.
Однако тогда пользователь поворачивает экран устройства от портретного до ландшафта. Или пользователь меняет языки. Или пользователь помещает устройство в док-станцию, поставляемую изготовителем. Или пользователь выполняет любое другое изменение конфигурации.
Ваша деятельность будет уничтожена и воссоздана по умолчанию. Ваши фрагменты также будут уничтожены и воссозданы по умолчанию (исключение: те, на которые вызывается setRetainInstance(true)
, которые отделены от старого действия и прикреплены к новому).
Итак, во второй раз, когда создается действие - экземпляр, созданный в результате изменения конфигурации - ваш фрагмент уже существует, поскольку он был либо воссоздан, либо сохранен. Вам не нужен второй экземпляр этого фрагмента (обычно), и поэтому вы предпринимаете шаги, чтобы обнаружить, что это произошло, и не запускать новый FragmentTransaction
.