Nawigacja fragmentów Androida i backstack

Mam pasek nagłówka (trochę jak menu) i 4 fragmenty (MAIN, A, B, C), z których MAIN powinien być fragmentem „main / root” dla backstacka.

Problem polega na tym, że gdy użytkownik korzysta z menu, na przykład MAIN> A> B> C. Jeśli po prostu użyję backstacka, to pójdzie w odwrotnej kolejności, której nie chcę. Potrzebuję przycisku Wstecz, aby wrócić do MAIN bez względu na to, jak użytkownik nawigował do jednego z tych 3.

Mój obecny kod (który jest nieprawidłowy, zamyka aplikację, gdy nie jest w MAIN i aktualny fragment jest przełączany z innego nie-głównego fragmentu) wygląda tak:

private void SwitchFragment(Fragment pFragment)
{
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.main_fl_fragmentcontainer, pFragment);
    if (_CurrentFragment == _Frag_Main)
        ft.addToBackStack(null);
    ft.commit();

    _CurrentFragment = pFragment;
}

questionAnswers(1)

yourAnswerToTheQuestion