diff --git a/fragmentation_core/src/main/java/me/yokeyword/fragmentation/TransactionDelegate.java b/fragmentation_core/src/main/java/me/yokeyword/fragmentation/TransactionDelegate.java index 049e81d0..fff13f33 100755 --- a/fragmentation_core/src/main/java/me/yokeyword/fragmentation/TransactionDelegate.java +++ b/fragmentation_core/src/main/java/me/yokeyword/fragmentation/TransactionDelegate.java @@ -247,19 +247,23 @@ void pop(final FragmentManager fm) { @Override public void run() { handleAfterSaveInStateTransactionException(fm, "pop()"); - removeTopFragment(fm); FragmentationMagician.popBackStackAllowingStateLoss(fm); + removeTopFragment(fm); } }); } private void removeTopFragment(FragmentManager fm) { - ISupportFragment top = SupportHelper.getBackStackTopFragment(fm); - if (top != null) { - fm.beginTransaction() - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) - .remove((Fragment) top) - .commitAllowingStateLoss(); + try { // Safe popBackStack() + ISupportFragment top = SupportHelper.getBackStackTopFragment(fm); + if (top != null) { + fm.beginTransaction() + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) + .remove((Fragment) top) + .commitAllowingStateLoss(); + } + } catch (Exception ignored) { + } }