Android - 如何从后台弹出片段时避免onResume片段

时间:2015-07-22 20:02:32

标签: android android-fragments

我们的应用程序中有多个屏幕,要在它们之间切换,我们使用FragmentTransactions,主要是替换,我们在后台添加片段到后台堆栈。在这样做的同时,我们保持在相同的MainActivity中。

因此,如果我们通过某个按钮从片段A转换到片段B,我们现在有一个看起来像

的堆栈

乙 甲

如果我们转到另一个片段C,它会像堆栈一样位于堆栈顶部

Ç 乙 甲

但是,有时我们会转换到片段D,这样我们就想要消除后台堆栈,这样用户就无法再通过C,B,A导航回来了。我们现在想要导航到D后面的背板看起来像这样

d

但为了做到这一点,我们需要使用以下方法清除背斜:

FragmentManager supportFragmentManager = getActivity().getSupportFragmentManager();
while(supportFragmentManager.getBackStackEntryCount() > 0)
{
  supportFragmentManager.popBackStackImmediate();
}
clearingBackStack = false;

但是当我们这样做时,会调用片段C,B和A的onResume。这不是我们想要的功能,可能会产生负面影响,例如进行不必要的服务器调用。我们还注意到在低端设备上,当它们从堆栈中脱落时,我们会看到弹出的碎片的闪光。

我们希望避免这种行为,有没有办法在没有激活弹出片段的情况下弹出整个片段backstack?

0 个答案:

没有答案