как я могу разбить вещи с фрагментами с помощью setRetainInstance (true) и добавить их в backstack?

Документы на setRetainInstance говорят:

Это можно использовать только с фрагментами, которые не находятся в заднем стеке.

поэтому я начал играть с этим.

У меня есть одно действие с добавляет первый фрагмент А

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, new PackageFragment());
ft.commit

затем из этого фрагмента я запускаю метод из родительского Activity, который добавляет фрагмента B в backstack

FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, new OrderFragment());
ft.addToBackStack(null);
ft.commit();

затем я создаю журнал сообщений из onCreate, onDestroy, onSaveInstanceState, onActivityCreated ... и т. д.

Я пробую две версии этого процесса. Вращая устройство на каждом фрагменте.

дефолт

Все как и ожидалось. onCreate, onDestroy на осколках огня

setRetainInstance (правда)

Все как и ожидалось? onCreate, onDestroy на фрагменты не стреляют

и все, кажется, работает, пока фрагменты находятся в обратном стакане .. так почему документы говорят, что я не должен его использовать? По каким сценариям у меня могут возникнуть проблемы?

Спасибо

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

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