Дальнейшее понимание setRetainInstance (true)

Какиеименно так происходит, когда вы звонитеsetRetainInstance(true) наFragment? Документация практически не существует, и это кажется очень важной функцией. В частности, я хочу знать, какая часть этой последовательности (которую я составил) верна:

Пользователь поворачивает устройство.Фрагмент отделен отActivity а такжеFragment.onDetach() называется.Деятельность разрушена;Activity.onDestroy() называется.Activity Java-объект удаляется (когда это возможно, GC).НовыйActivity Java-объект создан; его конструктор иonCreate() называются.ВActivity.onCreate() у нас либо естьsetContentView(...) который устанавливает макет, содержащий фрагмент, или мы используемFragmentTransaction добавить фрагмент.Я действительно не уверен в этом, но я предполагаю, что Android достаточно умен, чтобы найти старый фрагмент, и вызватьFragment.onAttach() прикрепить его к новомуActivityДалее (или раньше? Кто знает?)Activity.onResume() называется.

Так это правильно? Является ли Android достаточно умным, чтобы найти старый фрагмент, даже если я явно используюFragmentTransaction.add(new MyFragment(), ...) первый раз? И если да, то как мне избежать добавлениядругой фрагмент вonCreate()? Нужно ли делать что-то подобное?

    if (getSupportFragmentManager().findFragmentByTag("foo") == null)
    {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(new FooFragment(), "foo").commit();
    }

Ответы на вопрос(2)

Ваш ответ на вопрос