2017-03-02 83 views
0

我在网上找不到任何东西,我看到的每个线程都是关于如何清除所有堆栈和整个堆栈历史。但我需要特别清除我程序中的最后6个堆栈。Android Studio:如何清除“n”个堆栈

有什么方法可以清除最后的ñ活动中的堆栈数量?

或者我需要做的是清除所有后退堆栈去我的最后一个前一个片段。

场景:一个屏幕在底部有四个片段供用户选择。

片段A 片段B 片段C 片段d

的活动从片段B,其中5个更多的活动被称为调用。

我需要清除所有这些并返回到片段B.但是现在如果我清除了所有的堆栈,它会回到片段A,我不想要。

所以,现在我的问题是,我将如何返回片段B清除后端堆栈?

+0

“但现在如果我清除所有的堆栈,它会回到碎片A” - 为什么?该活动应该处于与您离开该活动相同的状态,假定您的流程尚未在该行的某处终止。如果片段B显示,片段B仍应显示。 – CommonsWare

+0

因为默认调用它的MainActivity会调用Fragment A,但是如果我回到栈中,它将被保存在Fragment B中。@CommonsWare – DaveTheCoder

回答

0

您可以使用startActivityForResult(),并且可以期望来自顶级活动的某种指示,以在protected void onActivityResult(int requestCode,int resultCode,Intent data)方法中调用finish()。