как я могу разбить вещи с фрагментами с помощью 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 на фрагменты не стреляют
и все, кажется, работает, пока фрагменты находятся в обратном стакане .. так почему документы говорят, что я не должен его использовать? По каким сценариям у меня могут возникнуть проблемы?
Спасибо