如何正确清除Fragment BackStack?

时间:2015-08-18 11:34:11

标签: android android-fragments fragment fragment-backstack fragmentmanager

我有一个具有单个活动的应用,其中所有屏幕都显示为片段。

因此,当我更改片段的大多数时候,我将它添加到后台堆栈。所以BackStack会变得非常大。

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

我的问题是,如果我想要替换片段但不再保留BackStack(BackStack重置),一个选项是通过执行PopBackStack直到root(这是超低效并且已经看到其他问题)来清除BackStack或者做一个片段替换而不将它添加到BackStack

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

那么你推荐什么?如果我只使用替换,它是否有任何内存问题?

0 个答案:

没有答案