Некоторое время искал эту проблему, но теперь безрезультатно:
Как определить восстанавливаемый фрагмент из бэкстека? Я использую библиотеку совместимости и 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) говорит
Однако обратите внимание: этот метод можно вызвать в любое время до onDestroy (). Есть много ситуаций, когда фрагмент может быть в основном разорван (например, когда он помещен в задний стек без отображения пользовательского интерфейса), но его состояние не будет сохранено до тех пор, пока его собственному действию действительно не потребуется сохранить его состояние.
Так что о onSaveInstanceState определенно не может быть и речи ...
onCreate()
. Возможно, это избавит вас от неприятностей. Я считаю, что этот конкретный метод не вызывается, когда фрагмент восстанавливается из заднего стека. - person Abhijit   schedule 05.06.2013