Главная » Разработка для Android » Визуализация жизненного цикла фрагмента в Android приложении

0

 

Если вы занимаетесь разработкой для Android 3.0 Honeycomb, API уровня 11 или выше, то в вашем распоряжении будет АРІ для работы с фрагментами. Если же вы предпочитаете писать программы для более ранних версий, чем Honeycomb, но собираетесь использовать в создаваемом пользовательском интерфейсе объекты Fragment, то можете применить пакет совместимости Android. Код примеров представлен в двух формах: в первом случае код ориентирован на работу с API уровня 11, а во втором случае – пригоден для работы с более ранними версиями, вплоть до API уровня 4, который соответствует версии Android 1.6. Следующие примеры кода Fragment идентичны во всем, кроме объявления пакета для класса Fragment. В том, что касается жизненного цикла Fragment, код работает аналогично.

Этот код, как и в классе Actіvity, показанном выше, организует обратные вызовы жизненного цикла таким образом, что их можно отслеживать по мере выполнения программы:

Как и при работе с фильтром LogCat, который мы использовали для нахождения записей журнала, демонстрирующих обратные вызовы к компонентам Activity, теперь мы настроим фильтр для обратных вызовов, идущих к Fragment.

Если повторить шаги, сделанные выше, – запускать другие приложения, пока не увидите в окне LogCat, что началася вызов методов жизненного цикла Fragment, – то окажется, что каждый экземпляр Fragment, находящийся в экземпляре Activity, действует на располагающиеся в нем виды (Views) так же, как и содержащая его активность. Вызываются похожие преобразования жизненного цикла и состояний.

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

Метод onAttach вызывается, когда экземпляр Fragment ассоциируется с экземпляром Actіvity. Это еще не означает полной инициализации Actіvity.

Метод onCreate вызывается, когда создается или воссоздается экземпляр Fragment. Если происходит восстановление после предшествовавшего разрушения фрагмента или активности, в которой он содержался, то аргумент bundle окажется ненулевым, если было сохранено какое-либо состояние.

Метод onCreateView вызывается, когда экземпляр Fragment должен создать иерархию объектов View, которые в нем содержатся. Роль фрагмента в активности довольно необычна. В чем-то фрагмент напоминает по поведению ViewGroup, но он не относится к иерархии класса View. Можно сказать, что фрагмент позволяет экземпляру активности содержать несколько наборов видов. В нашем примере загружается исключительно простой макет, содержащий единственный BHflTextView.

Метод onActivityCreated вызывается, когда активность, содержащая экземпляр фрагмента, уже создана, а также созданы объекты View, содержащиеся во Fragment. На этом этапе вы можете свободно искать объекты View, например, по их ID.

Метод onResume вызывается, когда фрагмент становится видимым и работает.

Метод onStart вызывается, когда фрагмент становится видимым и работает.

Метод onPause вызывается в тех же условиях, что и метод onPause, относящийся к активности, когда система собирается увести фрагмент с переднего плана.

Метод onStop вызывается, перед тем как фрагмент должен остановить работу.

Метод onSavelnstanceState вызывается, когда необходимо сохранить состояние экземпляра, чтобы, если этот экземпляр будет уничтожен (фактически будут удалены указывающие на него ссылки), любое предназначенное для сохранения состояние, специфичное для класса, можно было сохранить в объекте Bundle, переданном этому вызову.

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

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии