ответ jitesh mohite имеет недостаток: если вы начнете новое занятие, вы потеряете все данные на экране (если они есть).Запуск Fragment
обычно приводит к паузе Activity
, и если повторный запуск действия имел место, то почему бы не использовать Activities
- это первое место?
A FragmentManager
всегда состоит изсписок Fragments
в BackStack
Вы можете перебрать все фрагменты и выдвинуть их.Чтобы очистить фрагмент BackStack FragmentManager, вы можете выполнить итерацию по всем элементам обратного стека и вызвать popBackStack()
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
Но есть и более элегантное решение:
// in my case I get the support fragment manager, it should work with the native one too
FragmentManager fragmentManager = getSupportFragmentManager();
// this will clear the back stack and displays no animation on the screen
fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);