3.45M
Categories: programmingprogramming softwaresoftware

Жизненный цикл активности. Тема 9

1.

Тема 9. Жизненный цикл
активности
Преподаватель:
Вилкова Вероника Анатольевна

2.

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

3.

Stopwatch
• Пользователь решает, что он хочет
выполнить приложение.
• Система строит интент для запуска этой
активности вызовом startActivity(intent).
• Android проверяет, существует ли процесс
для этого приложения, и если не
существует — создает новый процесс.
• Вызывается метод onCreate() активности.
• При завершении работы onCreate() макет
отображается на устройстве

4.

Проблема

5.

Что произошло?
• Пользователь запускает приложение и щелкает на кнопке Start,
чтобы секундомер заработал.
• Пользователь поворачивает устройство.
• StopwatchActivity создается заново.

6.

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

7.

Состояния активности
Активность выполняется, когда она
находится на переднем плане на
экране. Метод onCreate() вызывается
при создании активности; именно
здесь происходит основная настройка
активности.
Метод
onDestroy()
вызывается непосредственно перед
уничтожением активности.

8.

Жизненный цикл активности
1. Запуск активности.
2. Метод onCreate() выполняется непосредственно
после запуска активности.
3. Во время выполнения активность находится на
переднем плане, а пользователь может
взаимодействовать с ней.
4. Метод onDestroy() вызывается непосредственно
перед уничтожением активности.
5. После
выполнения
метода
onDestroy()
активность уничтожается.

9.

Сохранение текущего состояния...
Чтобы сохранить текущее состояние
акивности, необходимо реализовать
метод onSaveInstanceState(). Метод
onSaveInstanceState()
вызывается
перед уничтожением активности; это
означает, что вам представится
возможность сохранить все значения,
которые нужно сохранить, прежде
чем
они
будут
безвозвратно
потеряны.

10.

Жизненный цикл активности: видимость
• Активность запускается, выполняется ее
метод onCreate().
• Метод onStart() выполняется после метода
onCreate(). Он вызывается, когда активность
собирается стать видимой.
• Метод onStop() выполняется, когда
активность перестает быть видимой
пользователю.
• Если активность снова становится видимой
пользователю, вызывается метод
onRestart(), за которым следует вызов
onStart()
• Наконец, активность уничтожается.

11.

А если приложение видимо только частично?
Активность находится в приостановленном
состоянии, если она потеряла фокус, но
остается видимой для пользователя. Такая
активность продолжает существовать и
сохраняет всю свою информацию состояния.

12.

Краткое руководство по методам жизненного цикла
Метод
Описание
onCreate()
При
создании
активности.
Используется для обычной статической
инициализации — например, создания
представлений. Также предоставляет
объект
Bundle
с
сохраненным
предыдущим состоянием активности.
onRestart()
Если
активность
ранее
была
остановлена, но непосредственно
перед ее повторным стартом.
onStart()
Когда активность становится видимой.
Сопровождается вызовом onResume(),
если активность выходит на передний
план, или вызовом onStop(), если
активность скрывается.

13.

Краткое руководство по методам жизненного цикла
Метод
Описание
onResume()
При выходе активности на передний
план.
onPause()
При уходе активности с переднего
плана из-за продолжения работы
другой
активности.
Следующая
активность сможет продолжить работу
только после завершения этого метода,
поэтому его код должен выполняться
быстро. Сопровождается вызовом
onResume(),
если
активность
возвращается на передний план, или
вызовом onStop(), если активность
скрывается.

14.

Краткое руководство по методам жизненного цикла
Метод
Описание
onStop()
Когда активность перестает быть
видимой изза того, что другая
активность
накрывает
ее
или
активность
уничтожается.
Сопровождается вызовом onRestart(),
если активность снова становится
видимой, или вызовом onDestroy(),
если активность уничтожается.
onDestroy()
Перед уничтожением активности или
ее завершением.

15.

Макеты
Наиболее часто используются следующие
виды макетов:
• ConstraintLayout
• GridLayout
• FrameLayout
• LinearLayout
• TableLayout
• RelativeLayout

16.

FrameLayout
Элементы во FrameLayout располагаются
друг за другом (в стопку) по оси Z, то есть
один наслаивается на другой.

17.

LinearLayout
В вертикальном LinearLayout элементы
располагаются один за другим по вертикали,
как в простом списке.

18.

LinearLayout
В горизонтальном LinearLayout элементы
располагаются по горизонтали, то есть
добавляются справа и слева друг от друга.

19.

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

20.

Строковые ресурсы
Грамотные программисты для всех текстов,
цветов, стилей и звуков используют
строковые
ресурсы,
чтобы
иметь
возможность
обращаться
к
ним
многократно.
English     Русский Rules