Есть 2 фрагмента A и B . Фрагмент B можно добавить в стек фрагментов, используя следующий метод:
Fragment b = new B();
getSupportFragmentManager().beginTransaction().addToBackStack(null).replace(R.id.new_fragment_container, b).commit();
Фрагмент B имеет кнопку возврата. При нажатии выполняется код.
FragmentManager fm = getSupportFragmentManager();
if (fm.getBackStackEntryCount() > 0)
fm.popBackStack();
else
finish();
После выполнения этого кода выполняется метод onDetach()
фрагмента B , после чего фрагмент A извлекается из стека. Почему этот фрагмент A также вызывает метод onDetach()
, когда он извлекается из стека?
Это порядок вызовов методов фрагмента A , после возврата из стека:
onCreateView()
onAtach()
onDestroyView()
ondestroy()
onDetach()
onCreateView()
onStart()
onResume()