我有一个应用程序,它有一个活动,所有屏幕都显示为片段。
因此,当我大多数时候更改片段时,我会将其添加到后堆栈中。所以 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 ,它是否有任何内存问题?