diff --git a/fragmentation/src/main/java/com/weikaiyun/fragmentation/TransactionDelegate.java b/fragmentation/src/main/java/com/weikaiyun/fragmentation/TransactionDelegate.java index 16d6904..e7ce761 100644 --- a/fragmentation/src/main/java/com/weikaiyun/fragmentation/TransactionDelegate.java +++ b/fragmentation/src/main/java/com/weikaiyun/fragmentation/TransactionDelegate.java @@ -221,7 +221,7 @@ public void run() { ft.show((Fragment) preFragment); ft.setMaxLifecycle((Fragment) preFragment, Lifecycle.State.RESUMED); } - ft.commit(); + supportCommit(fm, ft); } }); } @@ -414,7 +414,7 @@ private Bundle getArguments(Fragment fragment) { } private void supportCommit(FragmentManager fm, FragmentTransaction transaction) { - transaction.commitAllowingStateLoss(); + transaction.commitNowAllowingStateLoss(); } private boolean handleLaunchMode(FragmentManager fm, ISupportFragment topFragment, @@ -503,18 +503,15 @@ private void doPopTo(final String targetFragmentTag, boolean includeTargetFragme ft.show(targetFragment); ft.setMaxLifecycle(targetFragment, Lifecycle.State.RESUMED); - ft.commit(); - - FragmentationMagician.executePendingTransactions(fm); + supportCommit(fm, ft); } private void safePopTo(final FragmentManager fm, List willPopFragments) { - FragmentTransaction transaction = fm.beginTransaction(); + FragmentTransaction ft = fm.beginTransaction(); for (Fragment fragment : willPopFragments) { - transaction.remove(fragment); + ft.remove(fragment); } - transaction.commit(); - FragmentationMagician.executePendingTransactions(fm); + supportCommit(fm, ft); } private static void checkNotNull(T value) {