Некоторое время искал эту проблему, но безрезультатно:
Как определить, что фрагмент восстанавливается из backstack? Я использую библиотеку совместимости и ListFragment внутри FragmentActivity. Когда выбран элемент внутри ListFragment, запускается новый фрагмент, который заменяет ListFragment.
Я заметил, что когда FragmentActivity приостанавливается, вызывается onSaveInstanceState фрагмента. Но когда фрагмент помещается в задний стек через FragmentTransaction, onSaveInstanceState не вызывается, тогда вызываются методы жизненного цикла onCreateView и onActivityCreated с нулевым пакетом savedInstanceState Bundle.
Я спрашиваю об этом, потому что хочу загрузить некоторые данные, когда Фрагмент создается или восстанавливается, но не так, когда пользователь возвращается через. backstack.
Я просмотрел Как проверить, был ли фрагмент восстановлен из бэкстека? , но хочу добавить больше деталей в надежде, что это вызовет ответ.
Изменить: только что заметил http://developer.android.com/reference/android/app/Fragment.html#onSaveInstanceState (android.os.Bundle) {{1} } говорит
Однако обратите внимание: этот метод может быть вызван в любое время до onDestroy ().Есть много ситуаций, когда фрагмент может быть в основном разрушен (например, когда он помещен в задний стек без отображения пользовательского интерфейса), но его состояние не будет сохранено до тех пор, пока его собственному действию действительно не потребуется сохранить его состояние.
Так что о onSaveInstanceState определенно не может быть и речи ...