1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: android, андроид, андроид-разработка, жизненный цикл приложений, фрагменты</p>
1
<p>Теги: android, андроид, андроид-разработка, жизненный цикл приложений, фрагменты</p>
2
<p>Мы уже писали про<a>жизненный цикл одной активности</a>в Андроид-приложениях, а также про<a>навигацию и стек переходов</a>. В этот раз обсудим поведение фрагментов, прикреплённых к активности.</p>
2
<p>Мы уже писали про<a>жизненный цикл одной активности</a>в Андроид-приложениях, а также про<a>навигацию и стек переходов</a>. В этот раз обсудим поведение фрагментов, прикреплённых к активности.</p>
3
<h2>Сценарий № 1: запуск и завершение активности с фрагментом</h2>
3
<h2>Сценарий № 1: запуск и завершение активности с фрагментом</h2>
4
<p>Гарантируется, что вызов onCreate() активности выполнится раньше, чем вызов соответствующих вызовов фрагментов. Но противолежащие методы обратного вызова (onStart() и onResume()), выполняются параллельно, в результате чего порядок их вызовов не определён. К примеру, система сможет выполнить метод onStart() активности непосредственно перед методом onStart() фрагмента, однако затем выполнить метод onResume() фрагмента перед методом активности onResume(). Также стоит быть осторожным при управлении потоками выполнения и избегать состояния гонки.</p>
4
<p>Гарантируется, что вызов onCreate() активности выполнится раньше, чем вызов соответствующих вызовов фрагментов. Но противолежащие методы обратного вызова (onStart() и onResume()), выполняются параллельно, в результате чего порядок их вызовов не определён. К примеру, система сможет выполнить метод onStart() активности непосредственно перед методом onStart() фрагмента, однако затем выполнить метод onResume() фрагмента перед методом активности onResume(). Также стоит быть осторожным при управлении потоками выполнения и избегать состояния гонки.</p>
5
<h2>Сценарий № 2: поворот активности с фрагментом</h2>
5
<h2>Сценарий № 2: поворот активности с фрагментом</h2>
6
<h3>Управление состоянием</h3>
6
<h3>Управление состоянием</h3>
7
<p>Как сохранение, так и восстановление фрагментов весьма похоже на восстановление/сохранение активностей. Различие в том, что у фрагментов отсутствует метод onRestoreInstanceState(), однако им доступен Bundle в методах onCreate(), onCreateView() и onActivityCreated().</p>
7
<p>Как сохранение, так и восстановление фрагментов весьма похоже на восстановление/сохранение активностей. Различие в том, что у фрагментов отсутствует метод onRestoreInstanceState(), однако им доступен Bundle в методах onCreate(), onCreateView() и onActivityCreated().</p>
8
<p>Фрагменты можно сохранить, то есть при изменениях конфигурации активности станет применяться один и тот же экземпляр фрагмента.</p>
8
<p>Фрагменты можно сохранить, то есть при изменениях конфигурации активности станет применяться один и тот же экземпляр фрагмента.</p>
9
-
<h2>Сценарий № 3: поворот активности с сохранённым фрагментом</h2>
9
+
<h2>Сценарий № 3: поворот активности с сохра��ённым фрагментом</h2>
10
<p>После осуществления поворота фрагмент не разрушится и не воссоздастся, так как после пересоздания активности применяется тот же самый экземпляр фрагмента, причём в onActivityCreated() объект состояния всё ещё доступен.</p>
10
<p>После осуществления поворота фрагмент не разрушится и не воссоздастся, так как после пересоздания активности применяется тот же самый экземпляр фрагмента, причём в onActivityCreated() объект состояния всё ещё доступен.</p>
11
<p>Не следует использовать сохраняемые фрагменты, если они не применяются в целях сохранения данных между изменениями конфигурации (речь идёт о не UI-фрагменте). Например,<a>класс</a>ViewModel из библиотеки Architecture Components реализован внутри именно так, однако он предоставляет более простой API.</p>
11
<p>Не следует использовать сохраняемые фрагменты, если они не применяются в целях сохранения данных между изменениями конфигурации (речь идёт о не UI-фрагменте). Например,<a>класс</a>ViewModel из библиотеки Architecture Components реализован внутри именно так, однако он предоставляет более простой API.</p>
12
<p><em>Источник - "<a>The Android Lifecycle cheat sheet - part III : Fragments</a>".</em></p>
12
<p><em>Источник - "<a>The Android Lifecycle cheat sheet - part III : Fragments</a>".</em></p>
13
13