的Android关闭所有片段onBackPressed

问题描述:

我有在每个片段约10个片段的活动有一个与ProgressDialog一个的AsyncTask我需要离开,关闭所有片段,当我点击后退按钮 它关闭,但ProgressDialog仍可见特别是当我之间传递这里片段 是代码我使用的Android关闭所有片段onBackPressed

@Override 
    public void onBackPressed() { 
     if(fragmentManager!=null){ 
      for(int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) { 
       fragmentManager.popBackStack(); 
      }} 
           } 

还当我调试我发现,它进入onCreateView每个当我按下后退按钮虽然我使用transaction.replace方法片段之间传送I打开片段。

+0

尝试在转换碎片时删除'addToBackStack'。 –

+0

它不适用于我 – Radwa

我正在通过以下方法清除堆栈。

public void popBackStackTillEntry(int entryIndex) { 

    if (getSupportFragmentManager() == null) { 
     return; 
    } 
    if (getSupportFragmentManager().getBackStackEntryCount() <= entryIndex) { 
     return; 
    } 
    FragmentManager.BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(
      entryIndex); 
    if (entry != null) { 
     Utilities.sDisableFragmentAnimations = true; 
     getSupportFragmentManager().popBackStackImmediate(entry.getId(), 
       FragmentManager.POP_BACK_STACK_INCLUSIVE); 
    } 


} 

清除高达1意味着所有片段将从栈和仅单一片段被去除将留在堆栈。

用法 popBackStackTillEntry(1);

+1

感谢与popBackStackTillEntry(0)很多工作, – Radwa