diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index 3102a93790b24..a3c123f74cc47 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -2608,6 +2608,12 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene } } + void noteStateNotSaved() { + if (mChildFragmentManager != null) { + mChildFragmentManager.noteStateNotSaved(); + } + } + @Deprecated void performMultiWindowModeChanged(boolean isInMultiWindowMode) { onMultiWindowModeChanged(isInMultiWindowMode); diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index 399987fe1c417..3107453b9023b 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -2893,8 +2893,15 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate public void noteStateNotSaved() { mStateSaved = false; + final int addedCount = mAdded == null ? 0 : mAdded.size(); + for (int i = 0; i < addedCount; i++) { + Fragment fragment = mAdded.get(i); + if (fragment != null) { + fragment.noteStateNotSaved(); + } + } } - + public void dispatchCreate() { mStateSaved = false; dispatchMoveToState(Fragment.CREATED);