29
Activity Жизненный цикл Activity. Back Stack.

Лекция 2. Activity

  • Upload
    -

  • View
    570

  • Download
    1

Embed Size (px)

DESCRIPTION

Жизненный цикл Activity. Основные callback-методы. Back Stack.

Citation preview

Page 1: Лекция 2. Activity

Activity

Жизненный цикл Activity.Back Stack.

Page 2: Лекция 2. Activity

21:51 2 из 29

Activity. Основные состояния

Page 3: Лекция 2. Activity

21:51 3 из 29

Activity. Основные состояния

Activity запущена и видна пользователю. Пользователь

взаимодействует с Activity

Page 4: Лекция 2. Activity

21:51 4 из 29

Activity. Основные состояния

Activity частично скрытаот пользователя: отображается

диалоговое окно, перекрываетсяполупрозрачной activity.

Page 5: Лекция 2. Activity

21:51 5 из 29

Activity. Основные состояния

Activity полностью скрытаот пользователя. Никакой код

activity не исполняется.

Page 6: Лекция 2. Activity

21:51 6 из 29

Activity. Основные состояния

Page 7: Лекция 2. Activity

21:51 7 из 29

Activity. Основные callback-методы

● onCreate() - вызывается единожды, при создании activity. Обычно, создает интерфейс и инициализирует поля класса activty.

Page 8: Лекция 2. Activity

21:51 8 из 29

Activity. Основные callback-методы

● onPause() - первый признак того, что activity может быть закрыта. Необходимо остановить все ресурсоёмкие процессы и освободить ресурсы (приостановить видео, остановить камеру, ...).

Page 9: Лекция 2. Activity

21:51 9 из 29

Activity. Основные callback-методы

● onResume() - вызывается каждый раз, когда activity становится видимой пользователю. Необходимо инициализировать переменные, освобожденные в onPause(), а также другие инициализации (анимация, доступ к ресурсам, ...)

Page 10: Лекция 2. Activity

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; }}

Page 11: Лекция 2. Activity

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 }}

Page 12: Лекция 2. Activity

21:51 12 из 29

Activity. Основные callback-методы

● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент.

Page 13: Лекция 2. Activity

21:51 13 из 29

Activity. Основные callback-методы

● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент.

● Не надо сохранять состояние элементов интерфейса.

Page 14: Лекция 2. Activity

21:51 14 из 29

Activity. Основные callback-методы

● onRestart() - показывает, что activity восстанавливается после того, как была остановлена (после вызова onStop()).

Page 15: Лекция 2. Activity

21:51 15 из 29

Activity. Основные callback-методы

● onStart() - вызывается каждый раз при отображении activity. Необходимо инициализировать переменные, освобожденные в методе onStop().

Page 16: Лекция 2. Activity

21:51 16 из 29

Activity. Основные callback-методы

● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop().

Page 17: Лекция 2. Activity

21:51 17 из 29

Activity. Основные callback-методы

● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop().

● Вызов finish() из метода onCreate() не вызывает методы onPause() и onStop().

Page 18: Лекция 2. Activity

21:51 18 из 29

Activity. Основные callback-методы

● onCreate() - onDestroy()

● onStart() - onStop() - onRestart()

● onPause() - onResume()

Page 19: Лекция 2. Activity

21:51 19 из 29

Page 20: Лекция 2. Activity

21:51 20 из 29

Activity. Задачи и Back Stack

● Задача — набор из нескольких activity.

● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».

Page 21: Лекция 2. Activity

21:51 21 из 29

Activity. Задачи и Back Stack

● Задача — набор из нескольких activity.

● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».

Page 22: Лекция 2. Activity

21:51 22 из 29

Activity. Задачи и Back Stack

● Задача — набор из нескольких activity.

● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».

Page 23: Лекция 2. Activity

21:51 23 из 29

Activity. Задачи и Back Stack

● android:launchMode

– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.

Page 24: Лекция 2. Activity

21:51 24 из 29

Activity. Задачи и Back Stack

● Стандартное поведение: android:launchMode="standard"

Page 25: Лекция 2. Activity

21:51 25 из 29

Activity. Задачи и Back Stack

● android:launchMode

– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.

– "singleTop" - если activity находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.

Page 26: Лекция 2. Activity

21:51 26 из 29

Activity. Задачи и Back Stack

● android:launchMode="singleTop"

Объявлены какsingleTop

Page 27: Лекция 2. Activity

21:51 27 из 29

Activity. Задачи и Back Stack

● android:launchMode

– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.

– "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.

– "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах.

Page 28: Лекция 2. Activity

21:51 28 из 29

Activity. Задачи и Back Stack

● android:launchMode="singleTask"

Page 29: Лекция 2. Activity

21:51 29 из 29

Activity. Задачи и Back Stack

● android:launchMode

– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.

– "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.

– "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах.

– "singleInstance" — activity может быть создана только один раз, до тех пор, пока она не будет уничтожена системой.