Лекция 2. activity
DESCRIPTION
Жизненный цикл Activity. Основные callback-методы. Back Stack.TRANSCRIPT
![Page 1: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/1.jpg)
Activity
Жизненный цикл Activity.Back Stack.
![Page 2: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/2.jpg)
21:51 2 из 29
Activity. Основные состояния
![Page 3: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/3.jpg)
21:51 3 из 29
Activity. Основные состояния
Activity запущена и видна пользователю. Пользователь
взаимодействует с Activity
![Page 4: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/4.jpg)
21:51 4 из 29
Activity. Основные состояния
Activity частично скрытаот пользователя: отображается
диалоговое окно, перекрываетсяполупрозрачной activity.
![Page 5: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/5.jpg)
21:51 5 из 29
Activity. Основные состояния
Activity полностью скрытаот пользователя. Никакой код
activity не исполняется.
![Page 6: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/6.jpg)
21:51 6 из 29
Activity. Основные состояния
![Page 7: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/7.jpg)
21:51 7 из 29
Activity. Основные callback-методы
● onCreate() - вызывается единожды, при создании activity. Обычно, создает интерфейс и инициализирует поля класса activty.
![Page 8: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/8.jpg)
21:51 8 из 29
Activity. Основные callback-методы
● onPause() - первый признак того, что activity может быть закрыта. Необходимо остановить все ресурсоёмкие процессы и освободить ресурсы (приостановить видео, остановить камеру, ...).
![Page 9: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/9.jpg)
21:51 9 из 29
Activity. Основные callback-методы
● onResume() - вызывается каждый раз, когда activity становится видимой пользователю. Необходимо инициализировать переменные, освобожденные в onPause(), а также другие инициализации (анимация, доступ к ресурсам, ...)
![Page 10: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/12.jpg)
21:51 12 из 29
Activity. Основные callback-методы
● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент.
![Page 13: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/13.jpg)
21:51 13 из 29
Activity. Основные callback-методы
● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент.
● Не надо сохранять состояние элементов интерфейса.
![Page 14: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/14.jpg)
21:51 14 из 29
Activity. Основные callback-методы
● onRestart() - показывает, что activity восстанавливается после того, как была остановлена (после вызова onStop()).
![Page 15: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/15.jpg)
21:51 15 из 29
Activity. Основные callback-методы
● onStart() - вызывается каждый раз при отображении activity. Необходимо инициализировать переменные, освобожденные в методе onStop().
![Page 16: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/16.jpg)
21:51 16 из 29
Activity. Основные callback-методы
● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop().
![Page 17: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/17.jpg)
21:51 17 из 29
Activity. Основные callback-методы
● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop().
● Вызов finish() из метода onCreate() не вызывает методы onPause() и onStop().
![Page 18: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/18.jpg)
21:51 18 из 29
Activity. Основные callback-методы
● onCreate() - onDestroy()
● onStart() - onStop() - onRestart()
● onPause() - onResume()
![Page 19: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/19.jpg)
21:51 19 из 29
![Page 20: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/20.jpg)
21:51 20 из 29
Activity. Задачи и Back Stack
● Задача — набор из нескольких activity.
● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».
![Page 21: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/21.jpg)
21:51 21 из 29
Activity. Задачи и Back Stack
● Задача — набор из нескольких activity.
● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».
![Page 22: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/22.jpg)
21:51 22 из 29
Activity. Задачи и Back Stack
● Задача — набор из нескольких activity.
● Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек».
![Page 23: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/23.jpg)
21:51 23 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
![Page 24: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/24.jpg)
21:51 24 из 29
Activity. Задачи и Back Stack
● Стандартное поведение: android:launchMode="standard"
![Page 25: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/25.jpg)
21:51 25 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
– "singleTop" - если activity находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.
![Page 26: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/26.jpg)
21:51 26 из 29
Activity. Задачи и Back Stack
● android:launchMode="singleTop"
Объявлены какsingleTop
![Page 27: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/27.jpg)
21:51 27 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
– "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.
– "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах.
![Page 28: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/28.jpg)
21:51 28 из 29
Activity. Задачи и Back Stack
● android:launchMode="singleTask"
![Page 29: Лекция 2. Activity](https://reader034.vdocuments.mx/reader034/viewer/2022042715/557eca87d8b42ae27f8b49b9/html5/thumbnails/29.jpg)
21:51 29 из 29
Activity. Задачи и Back Stack
● android:launchMode
– "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр.
– "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр.
– "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах.
– "singleInstance" — activity может быть создана только один раз, до тех пор, пока она не будет уничтожена системой.