Почему мой фрагмент onCreate активно вызывается всякий раз, когда я просматриваю свои приложения viewPager?

Я не совсем понимаю этот бизнес жизненного цикла фрагментов.

У меня есть довольно стандартный 3-страничный горизонтальный слайдер с макетом пейджера для раздела «просмотр деталей» моего приложения. Я запускаю свое приложение на средней странице из трех. My FragmentActivity устанавливает страницу на страницу 1.

mPager.setCurrentItem(1); //default to center page, current data view fragment

Я использовал FragmentStatePagerAdapter, потому что использование FragmentPagerAdapter иногда приводило к сбою моего приложения, например, при возврате из приостановленного состояния, и на данный момент это был самый быстрый способ обойти это. Кажется, работает, но я подозреваю, что причиной моей проблемы здесь может быть аспект состояния.

Итак, сначала я думал, что каждый фрагмент будет выполнять работу по получению данных из службы отдыха, а затем показывать их в списке, но я больше не уверен.

Я попытался запустить уникальную асинхронную задачу для получения данных в каждом из фрагментов событий onCreateView. Затем, прочитав больше о жизненном цикле фрагмента, я переключился на onCreate, заметив, что onCreateView вызывался довольно часто, что, в свою очередь, приводило к жадности приложения, которое слишком часто запрашивало данные по сети.

Переход на onCreate ничего не изменил. OnCreate по-прежнему вызывается так же, как и onCreateView для двух соседних фрагментов.

Странно то, что фрагмент, который я установил первым для отображения в Fragment Activity, вызывает onCreate только один раз.

Что-то здесь не так.

Прямо сейчас я думаю, что мне следует объявить активность родительского фрагмента и вызвать все асинхронные задачи для получения данных, которые мне нужно отображать во фрагментах. Задайте результаты асинхронных вызовов в объекте, принадлежащем активности родительского фрагмента, а затем заставьте фрагменты использовать объект, содержащийся в родительском элементе, для создания представления списка и т. д.

Но что, если асинхронные задачи, запущенные родительской активностью, не завершатся до вызова каждого фрагмента onCreateView, а объект, содержащийся в родительской активности, еще не готов.....

подписал, растерянный и расстроенный

8
задан topwik 7 August 2012 в 19:17
поделиться