Почему метод onDetach () вызывается при возврате к предыдущему фрагменту в стеке фрагментов? - PullRequest
0 голосов
/ 31 января 2020

Есть 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()
...