我把我的安卓应用移植到了蜂巢,为了使用碎片,我做了一次大的重构.在我之前的版本中,当我按下Home(主页)按钮时,我会用ACTIVITY_CLEAR_TOP
来重置后堆栈.
现在我的应用程序只是一个包含多个片段的单个活动,所以当我按下Home按钮时,我只替换了其中的一个片段.如何才能在不使用带有ACTIVITY_CLEAR_TOP
标志的startActivity
的情况下清除后端堆栈?
我把我的安卓应用移植到了蜂巢,为了使用碎片,我做了一次大的重构.在我之前的版本中,当我按下Home(主页)按钮时,我会用ACTIVITY_CLEAR_TOP
来重置后堆栈.
现在我的应用程序只是一个包含多个片段的单个活动,所以当我按下Home按钮时,我只替换了其中的一个片段.如何才能在不使用带有ACTIVITY_CLEAR_TOP
标志的startActivity
的情况下清除后端堆栈?
I posted something similar here
约阿希姆的回答来自黛安·哈克伯恩(Dianne Hackborn):
http://groups.google.com/group/android-developers/browse_thread/thread/d2a5c203dad6ec42
我最后只是用了:
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
但同样可以使用类似的东西:
((AppCompatActivity)getContext()).getSupportFragmentManager().popBackStack(String name, FragmentManager.POP_BACK_STACK_INCLUSIVE)
这将弹出所有状态到指定的状态.然后你就可以用你想要的来替换片段了