Intereting Posts
Android-адаптер с несколькими getView Ошибка при сбое: INVALID_STATE_ERR: исключение DOM 11 Android – Как применять diffenernt Image Effects для растровых изображений, таких как сепия, черно-белый, размытие и т. Д. C2DM с PHP с использованием OAuth2.0 (ClientLogin устарел!) Как проверить фрагмент с помощью эспрессо Обновите один столбец как сумму двух других столбцов Как разработать приложение для распознавания голоса, например, говорящий тома Как настроить приложение: layout_scrollFlags для панели инструментов программно Как вставлять и воспроизводить видео на YouTube в андроиде Regex <img> Разбор тегов с src, width, height IScroll 4 не работает с элементом формы <select> iPhone Safari и Android-браузер Создание изображения с экрана просмотра в Android Android: кнопка предпочтения нажата? Исключение для Android Roboguice Как я могу сделать ячейку в ListView в Android расширяться и сокращаться вертикально, когда ее касаются?

Почему при добавлении фрагмента вы проверяете для savedInstanceState == null?

В фрагменте doc в одном из примеров они проверяют для savedInstanceState == null при добавлении фрагмента:

 public static class DetailsActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { // If the screen is now in landscape mode, we can show the // dialog in-line with the list so we don't need this activity. finish(); return; } if (savedInstanceState == null) { // During initial setup, plug in the details fragment. DetailsFragment details = new DetailsFragment(); details.setArguments(getIntent().getExtras()); getFragmentManager().beginTransaction().add(android.R.id.content, details).commit(); } } } 

Какова цель этой проверки? Что произойдет, если его там нет?

Какова цель этой проверки?

Чтобы не добавлять фрагмент дважды, хотя я предпочитаю проверять, есть ли там фрагмент вместо того, чтобы полагаться на этот Bundle null .

Что произойдет, если его там нет?

Изначально ничего не происходит, так как Bundle будет null когда активность будет сначала создана.

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

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

Итак, во второй раз создается действие – экземпляр, созданный в результате изменения конфигурации – ваш фрагмент уже существует , поскольку он был либо воссоздан, либо сохранен. Вам не нужен второй экземпляр этого фрагмента (обычно), и поэтому вы предпринимаете шаги, чтобы обнаружить, что это произошло, и не запускать новое FragmentTransaction .