的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打开片段。
答
我正在通过以下方法清除堆栈。
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
尝试在转换碎片时删除'addToBackStack'。 –
它不适用于我 – Radwa