Как определить фрагмент, восстановленный из backstack

Некоторое время искал эту проблему, но безрезультатно:

Как определить, что фрагмент восстанавливается из 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 определенно не может быть и речи ...

53
задан Community 23 May 2017 в 02:26
поделиться