2017-10-05 68 views
0

我现在有流Android应用A - >乙 - “ç - > d在活动推出1.除去所有片段使得onBackPressed关闭应用

d后,我具有活性2开始和下面的代码运行以从堆栈中移除所有片段。

List<Fragment> fragments = getSupportFragmentManager().getFragments(); 
if (fragments != null) { 

    for (Fragment fragment : fragments) { 
     getSupportFragmentManager().beginTransaction().remove(fragment).commit(); 
    } 
} 

我的问题是,当我从活动2返回活动1时,是当我按下后退键时,片段C动画返回到屏幕。片段D确实删除,但A B C不删除。我希望应用在活动1的后备活动时关闭。

我附加了在此删除我的片段的代码。调试显示fragment确实随每个循环而改变。

任何人都可以建议这里发生了什么?

+0

什么是D-> C-> B-> A欲望的行为吗?你为什么要加入到后台? – nomag

+0

是否有一个特定的原因,您将所有片段添加到后端堆栈以开始?另外,当用户从活动2返回到活动1时,您想要显示哪个片段? –

+0

我添加到了堆栈中,因为在片段中,如果按下后退键,我希望能够导航回到它们。如果对服务器的调用成功,则行为是A> B> C> D>打开活动2。如果我从活动2返回活动1,我不希望任何片段出现在backkeypress上,而是希望它退出该应用程序。 – Airagale

回答

0

您可以覆盖backpressed方法和关闭应用程序,就像这样:

@Override 
public void onBackPressed() { 
     finish(); // finish activity 
} 
相关问题