Подтвердить что ты не робот

Активность и жизненный цикл фрагментов

Я работаю над новым приложением, где я использую Activity и Fragment. Любое основное различие между ними

Update

Я нашел хороший ответ, который я хотел в документах для Android.

Документы, описанные

Самое существенное различие в жизненном цикле между активностью и фрагментом - это то, как один хранится в соответствующем стеке. Активность по умолчанию помещается в задний стек действий, которые управляются системой, когда она остановлена, чтобы пользователь мог вернуться к ней с помощью кнопки "Назад", как описано в разделе "Задачи и обратный стек" ). Однако фрагмент помещается в задний стек, управляемый активностью хоста, только когда вы явно запрашиваете, чтобы экземпляр был сохранен, вызывая addToBackStack() во время транзакции, которая удаляет фрагмент.

Поддерживает ли хост Activity другой задний стек разных связанных с ним Fragment и любой сценарий, в котором ваше одно приложение хранит несколько стеков.??

4b9b3361

Ответ 1

 Differences between Activity and Fragment lifecyle in Android

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

Активность может содержать 0 или несколько фрагментов на основе размера экрана. Фрагмент может быть повторно использован в нескольких действиях, поэтому он действует как компонент многократного использования в действиях.

Фрагмент не может существовать независимо. Это должно быть всегда частью деятельности. Где, поскольку деятельность может существовать без какого-либо фрагмента в ней.

Жизненный цикл фрагмента более сложный, чем жизненный цикл активности, поскольку он имеет больше состояний. Состояние жизненного цикла показано ниже:

enter image description here

onInflate

В самом начале жизни фрагмента вызывается метод onInflate. В этом методе мы можем сохранить некоторые параметры конфигурации и определить некоторые атрибуты в файле макета XML.

onAttach

После этого вызывается onAttach. Этот метод вызывается, как только фрагмент "привязан" к активности "отца", и мы можем использовать этот метод для хранения ссылки на активность.

OnCreate

Это один из самых важных шагов, наш фрагмент находится в процессе создания. Этот метод можно использовать для запуска некоторого потока для получения информации о данных, возможно, с удаленного сервера. onCreateView - это метод, называемый, когда фрагмент должен создавать свою иерархию представлений. Во время этого метода мы раздуем наш макет внутри фрагмента.

На этом этапе мы не можем быть уверены, что наша деятельность все еще создана, поэтому мы не можем рассчитывать на нее для какой-либо операции. Мы получаем уведомление, когда активность "отца" создается и готова в onActivityCreated.

С этого момента наша деятельность активна и создана, и мы можем ее использовать, когда нам нужно.

OnStart

Следующий шаг - onStart. Здесь мы делаем общие вещи, как в действии onStart, на этом этапе наш фрагмент виден, но он по-прежнему не взаимодействует с пользователем.

onResume

Когда фрагмент готов к взаимодействию с пользователем onResume.

Тогда может случиться, что действие приостановлено и поэтому вызывается активность onPause. Хорошо вызывается метод onPause.

После этого может случиться так, что ОС решает уничтожить наш фрагмент и поэтому вызывается onDestroyView. После этого, если система решит отклонить наш фрагмент, он вызывает метод onDestroy.

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

Надеюсь, вы поймете это.

Спасибо.

Ответ 2

Непосредственно из руководства Fragments разработчика -

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

Например, когда активность получает onPause(), каждый фрагмент в активности получает onPause().

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

1) onAttach() = >

Вызывается, когда фрагмент связан с активностью ( Деятельность здесь передается).

2) onCreateView() = >

Вызывается для создания иерархии представления, связанной с фрагментом.

3) onActivityCreated() = >

Вызывается при возврате метода onCreate().

4) onDestroyView() = >

Вызывается, когда иерархия представления, связанная с фрагментом, удалены.

5) onDetach() = >

Вызывается, когда фрагмент отключается от активности.

Как только activity достигнет возобновленного состояния, вы можете свободно добавлять и удалять fragments в activity. Таким образом, только когда активность находится в состоянии возобновления, жизненный цикл фрагмента изменяется независимо.

Однако, когда activity покидает возобновленное состояние, fragment снова проталкивается через свой жизненный цикл с помощью activity.

Проверьте Действия и фрагменты.

Ответ 3

Схожая в одном смысле. Оба получают свой жизненный цикл, пока они не существуют на экране. Если ваша деятельность закрыта, она будет остановлена ​​и уничтожена позже. Аналогично, фрагменты уничтожаются, если они больше не доступны в scree. Но поскольку фрагменты живут внутри действия, вероятно, что фрагменты уничтожаются всякий раз, когда какой-либо другой фрагмент заменяет этот фрагмент. Таким образом, он владеет подобным, но отличным жизненным циклом.