документы на setRetainInstance говорят:
Это можно использовать только с фрагментами, не входящими в задний стек.
поэтому я начал играть с ним.
У меня есть одно действие с добавлением первого фрагмента A
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, new PackageFragment());
ft.commit
то из этого фрагмента я запускаю метод из родительской активности, который добавляет frag B в backstack
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content, new OrderFragment());
ft.addToBackStack(null);
ft.commit();
то я создаю log msg из onCreate, onDestroy, onSaveInstanceState, onActivityCreated... и т.д.
Я пробую две версии этого процесса. Поворот устройства на каждый фрагмент.
- По умолчанию
Все так, как ожидалось. onCreate, onDestroy on fragments fire
- setRetainInstance (истина)
Все как ожидалось?. onCreate, onDestroy на фрагментах не огонь
и все, похоже, работают, пока фрагменты находятся в задней части экрана. Поэтому почему документы говорят, что я не должен использовать его? Каковы сценарии, в которых я могу попасть в беду?
спасибо