Как точно работает v4.app.Fragment? У меня есть viewPager с 7 фрагментами. Я был уверен, что при перемещении между фрагментами, в зависимости от ситуации, каждый фрагмент может быть автоматически уничтожен и создан. Однако, похоже, это не так.v4.app.Fragment, когда он создан и уничтожен?
я решил немного поиграть с отладкой и установить некоторый флаг для моего класса Фрагмент объекта, что-то вроде
class MyClass extends Fragment {
public boolean myFlag=false;
Когда я установил отл. true где-то в коде, который запускается только один раз (например, true устанавливается после нажатия кнопки), кажется, что это значение истинно до тех пор, пока приложение не закончится. Таким образом, предполагается, что объект хранится все время в памяти.
Однако, когда пользователь перемещается между фрагментами onCreateView
и onViewStateRestored
, методы, как представляется, называются.
И теперь я чувствую себя довольно смущенным. Если фрагменты не уничтожены, почему эти методы выполняются Android?
Есть ли у меня гарантия того, что мой объект Fragment будет храниться всегда со всеми полями (когда пользователь только перемещается между фрагментами и не покидает приложение)?
Если нет, как сохранить и восстановить его состояние? public void onSaveInstanceState(Bundle savedInstanceState)
метод, похоже, запускается только при выходе пользователя из приложения, а не при перемещении пользователя между фрагментами.
Вы видели хороший учебник относительно ViewPager и фрагментов?
Большое спасибо. Я использую FragmentPagerAdapter. В этом случае, хорошо ли я понимаю, все фрагменты должны оставаться в живых? – user2707175
Возвращаясь к состоянию сохранения, если я использую адаптер, который динамически создает и уничтожает фрагменты, как сохранить и восстановить состояние? – user2707175
И это Android-руководство, даже если оно дает дополнительную информацию, похоже, не вызывает сомнений по всем моим сомнениям. :( – user2707175