1

我有一个应用程序,它有一个活动,所有屏幕都显示为片段。

因此,当我大多数时候更改片段时,我会将其添加到后堆栈中。所以 BackStack 可以变得相当大。

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

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

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

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

4

0 回答 0