Как правильно очистить Fragment BackStack?

У меня есть приложение с одним действием, в котором все экраны отображаются как фрагменты.

Поэтому, когда большую часть времени я меняю фрагмент, я добавляю его в задний стек. Таким образом, BackStack может стать довольно большим.

getActivity().getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.leftPane, new ReleaseFragmentBuilder(releaseId).build())
    .addToBackStack(null)
    .commit();

Мой вопрос заключается в том, хочу ли я заменить фрагмент, но больше не сохранять BackStack (BackStack Reset), один из вариантов - очистить BackStack, выполнив PopBackStack до получения root (что очень неэффективно и видел другие проблемы) ИЛИ сделать фрагмент заменить БЕЗ добавления его в BackStack

getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.leftPane, new HomeFragment())
    .commit();

Итак, что вы рекомендуете? Если я использую только замену, есть ли проблемы с памятью?


person Kenenisa Bekele    schedule 18.08.2015    source источник
comment
так что в основном вы хотите сделать? Вы хотите удалить весь стек после выполнения этой конкретной транзакции? Или вы просто не хотите, чтобы эта транзакция замены была частью вашего стека??   -  person Bhargav    schedule 18.08.2015
comment
Вы можете найти ответ на аналогичный вопрос здесь - › stackoverflow.com/a/23328086/1593476   -  person skrzatswat    schedule 18.08.2015
comment
@Bhargav, я хочу удалить всю стопку.   -  person Kenenisa Bekele    schedule 18.08.2015
comment
@skrzatswat Ну, ответ просто показывает, как очистить backstack, но мой вопрос больше о том, в чем разница между очисткой BackStack или просто выполнением замены текущего фрагмента без его добавления.   -  person Kenenisa Bekele    schedule 19.08.2015