Лекция 2. Activity.
description
Transcript of Лекция 2. Activity.
Activity
Жизненный цикл Activity.Back Stack.
21:51 2 из 29
Activity. Основные состояния
21:51 3 из 29
Activity. Основные состояния
Activity запущена и видна пользователю. Пользователь
взаимодействует с Activity
21:51 4 из 29
Activity. Основные состояния
Activity частично скрытаот пользователя: отображается
диалоговое окно, перекрываетсяполупрозрачной activity.
21:51 5 из 29
Activity. Основные состояния
Activity полностью скрытаот пользователя. Никакой код
activity не исполняется.
21:51 6 из 29
Activity. Основные состояния
21:51 7 из 29
Activity. Основные callback-методы
● onCreate() - вызывается единожды, при создании activity. Обычно, создает интерфейс и инициализирует поля класса activty.
21:51 8 из 29
Activity. Основные callback-методы
● onPause() - первый признак того, что activity может быть закрыта. Необходимо остановить все ресурсоёмкие процессы и освободить ресурсы (приостановить видео, остановить камеру, ...).
21:51 9 из 29
Activity. Основные callback-методы
● onResume() - вызывается каждый раз, когда activity становится видимой пользователю. Необходимо инициализировать переменные, освобожденные в onPause(), а также другие инициализации (анимация, доступ к ресурсам, ...)
21:51 10 из 29
Activity. Основные callback-методы
@Overridepublic void onPause() { super.onPause(); // Always call the superclass method first
// Release the Camera because we don't need it when paused // and other activities might need to use it. if (mCamera != null) { mCamera.release() mCamera = null; }}
21:51 11 из 29
Activity. Основные callback-методы
@Overridepublic void onPause() { super.onPause(); // Always call the superclass method first
// Release the Camera because we don't need it when paused // and other activities might need to use it. if (mCamera != null) { mCamera.release() mCamera = null; }}
@Overridepublic void onResume() { super.onResume(); // Always call the superclass method first
// Get the Camera instance as the activity achieves full user focus if (mCamera == null) { initializeCamera(); // Local method to handle camera init }}
21:51 12 из 29
Activity. Основные callback-методы
● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент.
21:51 13 из 29
Activity. Основные callback-методы
● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент.
● Не надо сохранять состояние элементов интерфейса.
21:51 14 из 29
Activity. Основные callback-методы
● onRestart() - показывает, что activity восстанавливается после того, как была остановлена (после вызова onStop()).
21:51 15 из 29
Activity. Основные callback-методы
● onStart() - вызывается каждый раз при отображении activity. Необходимо инициализировать переменные, освобожденные в методе onStop().
21:51 16 из 29
Activity. Основные callback-методы
● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop().
21:51 17 из 29
Activity. Основные callback-методы
● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop().
● Вызов finish() из метода onCreate() не вызывает методы onPause() и onStop().
21:51 18 из 29
Activity. Основные callback-методы
● onCreate() - onDestroy()
● onStart() - onStop() - onRestart()
● onPause() - onResume()
21:51 19 из 29
21:51 20 из 29
Activity. Задачи и Back Stack
● Задача — набор из нескольких activity.
● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».
21:51 21 из 29
Activity. Задачи и Back Stack
● Задача — набор из нескольких activity.
● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».
21:51 22 из 29
Activity. Задачи и Back Stack
● Задача — набор из нескольких activity.
● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».
21:51 23 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
21:51 24 из 29
Activity. Задачи и Back Stack
● Стандартное поведение: android:launchMode="standard"
21:51 25 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
– "singleTop" - если activity находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.
21:51 26 из 29
Activity. Задачи и Back Stack
● android:launchMode="singleTop"
Объявлены какsingleTop
21:51 27 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
– "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.
– "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах.
21:51 28 из 29
Activity. Задачи и Back Stack
● android:launchMode="singleTask"
21:51 29 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
– "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.
– "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах.
– "singleInstance" — activity может быть создана только один раз, до тех пор, пока она не будет уничтожена системой.