SlideShare a Scribd company logo
1 of 29
Download to read offline
Activity

Жизненный цикл Activity.
Back Stack.
Activity. Основные состояния

21:51

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

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

21:51

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

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

21:51

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

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

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

21:51

6 из 29
Activity. Основные callback-методы

●

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

21:51

7 из 29
Activity. Основные callback-методы

●

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

21:51

8 из 29
Activity. Основные callback-методы

●

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

21:51

9 из 29
Activity. Основные callback-методы
@Override
public 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

10 из 29
Activity. Основные callback-методы
@Override
public 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;
}
}
@Override
public 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

11 из 29
Activity. Основные callback-методы

●

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

21:51

12 из 29
Activity. Основные callback-методы

●

●

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

21:51

13 из 29
Activity. Основные callback-методы

●

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

21:51

14 из 29
Activity. Основные callback-методы

●

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

21:51

15 из 29
Activity. Основные callback-методы

●

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

21:51

16 из 29
Activity. Основные callback-методы

●

●

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

21:51

17 из 29
Activity. Основные callback-методы
●

onCreate() - onDestroy()

●

onStart() - onStop() - onRestart()

●

onPause() - onResume()

21:51

18 из 29
21:51

19 из 29
Activity. Задачи и Back Stack
●

●

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

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
●

android:launchMode
–

21:51

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

23 из 29
Activity. Задачи и Back Stack
●

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

21:51

24 из 29
Activity. Задачи и Back Stack
●

android:launchMode
–

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

–

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

21:51

25 из 29
Activity. Задачи и Back Stack
●

android:launchMode="singleTop"

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

21:51

26 из 29
Activity. Задачи и Back Stack
●

android:launchMode
–

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

–

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

–

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

21:51

27 из 29
Activity. Задачи и Back Stack
●

android:launchMode="singleTask"

21:51

28 из 29
Activity. Задачи и Back Stack
●

android:launchMode
–

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

–

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

–

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

–

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

21:51

29 из 29

More Related Content

What's hot

Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)
Noveo
 
XP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overviewXP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overview
Anton Katkov
 
афанасьев(основные отличия W8.1 от w7
афанасьев(основные отличия W8.1 от w7афанасьев(основные отличия W8.1 от w7
афанасьев(основные отличия W8.1 от w7
Anyuta Roschina
 

What's hot (20)

Полный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья СтусьПолный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
 
Григорий Демченко — Асинхронное программирование и сопрограммы
Григорий Демченко — Асинхронное программирование и сопрограммыГригорий Демченко — Асинхронное программирование и сопрограммы
Григорий Демченко — Асинхронное программирование и сопрограммы
 
Разработка WPF приложений в стиле ViewModel First
Разработка WPF приложений в стиле ViewModel FirstРазработка WPF приложений в стиле ViewModel First
Разработка WPF приложений в стиле ViewModel First
 
Коротко о React.js
Коротко о React.jsКоротко о React.js
Коротко о React.js
 
Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)
 
Moxy – реализация MVP под Android. С щепоткой магии
Moxy – реализация MVP под Android. С щепоткой магииMoxy – реализация MVP под Android. С щепоткой магии
Moxy – реализация MVP под Android. С щепоткой магии
 
Как написать XAML-приложение без Message Bus
Как написать XAML-приложение без Message Bus Как написать XAML-приложение без Message Bus
Как написать XAML-приложение без Message Bus
 
Автоматизируем GUI тесты на питоне
Автоматизируем GUI тесты на питонеАвтоматизируем GUI тесты на питоне
Автоматизируем GUI тесты на питоне
 
MVP, Moxy. Как правильно пользоваться
MVP, Moxy. Как правильно пользоватьсяMVP, Moxy. Как правильно пользоваться
MVP, Moxy. Как правильно пользоваться
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelper
 
Tdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chaiTdd webpack + testem + mocha + chai
Tdd webpack + testem + mocha + chai
 
XP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overviewXP.Party (iOS) - unit tests frameworks overview
XP.Party (iOS) - unit tests frameworks overview
 
Денис Кандров, Пушкова Евгения, QSpec: тестирование графических приложений на Qt
Денис Кандров, Пушкова Евгения, QSpec: тестирование графических приложений на QtДенис Кандров, Пушкова Евгения, QSpec: тестирование графических приложений на Qt
Денис Кандров, Пушкова Евгения, QSpec: тестирование графических приложений на Qt
 
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...Windbg: когда у нас не воспроизводится. Александр Головач ➠  CoreHard Autumn ...
Windbg: когда у нас не воспроизводится. Александр Головач ➠ CoreHard Autumn ...
 
Unit testing iOS Applications
Unit testing iOS ApplicationsUnit testing iOS Applications
Unit testing iOS Applications
 
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
 
Практика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-серверПрактика Lock-free. RealTime-сервер
Практика Lock-free. RealTime-сервер
 
Lec 14
Lec 14Lec 14
Lec 14
 
Android - 09 - Fragments
Android - 09 - FragmentsAndroid - 09 - Fragments
Android - 09 - Fragments
 
афанасьев(основные отличия W8.1 от w7
афанасьев(основные отличия W8.1 от w7афанасьев(основные отличия W8.1 от w7
афанасьев(основные отличия W8.1 от w7
 

Лекция 2. Activity.

  • 3. Activity. Основные состояния Activity запущена и видна пользователю. Пользователь взаимодействует с Activity 21:51 3 из 29
  • 4. Activity. Основные состояния Activity частично скрыта от пользователя: отображается диалоговое окно, перекрывается полупрозрачной activity. 21:51 4 из 29
  • 5. Activity. Основные состояния Activity полностью скрыта от пользователя. Никакой код activity не исполняется. 21:51 5 из 29
  • 7. Activity. Основные callback-методы ● onCreate() - вызывается единожды, при создании activity. Обычно, создает интерфейс и инициализирует поля класса activty. 21:51 7 из 29
  • 8. Activity. Основные callback-методы ● onPause() - первый признак того, что activity может быть закрыта. Необходимо остановить все ресурсоёмкие процессы и освободить ресурсы (приостановить видео, остановить камеру, ...). 21:51 8 из 29
  • 9. Activity. Основные callback-методы ● onResume() - вызывается каждый раз, когда activity становится видимой пользователю. Необходимо инициализировать переменные, освобожденные в onPause(), а также другие инициализации (анимация, доступ к ресурсам, ...) 21:51 9 из 29
  • 10. Activity. Основные callback-методы @Override public 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 10 из 29
  • 11. Activity. Основные callback-методы @Override public 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; } } @Override public 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 11 из 29
  • 12. Activity. Основные callback-методы ● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент. 21:51 12 из 29
  • 13. Activity. Основные callback-методы ● ● onStop() - вызывается после метода onPause(), если activity должна быть остановлена. Необходимо освободить все ресурсы, т. к. activity может быть выгружена из памяти (уничтожена) в любой момент. Не надо сохранять состояние элементов интерфейса. 21:51 13 из 29
  • 14. Activity. Основные callback-методы ● onRestart() - показывает, что activity восстанавливается после того, как была остановлена (после вызова onStop()). 21:51 14 из 29
  • 15. Activity. Основные callback-методы ● onStart() - вызывается каждый раз при отображении activity. Необходимо инициализировать переменные, освобожденные в методе onStop(). 21:51 15 из 29
  • 16. Activity. Основные callback-методы ● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop(). 21:51 16 из 29
  • 17. Activity. Основные callback-методы ● ● onDestroy() - вызывается, когда activity полностью удаляется из памяти. Обычно, вызов происходит после вызова методов onPause() и onStop(). Вызов finish() из метода onCreate() не вызывает методы onPause() и onStop(). 21:51 17 из 29
  • 18. Activity. Основные callback-методы ● onCreate() - onDestroy() ● onStart() - onStop() - onRestart() ● onPause() - onResume() 21:51 18 из 29
  • 20. Activity. Задачи и Back Stack ● ● Задача — набор из нескольких activity. Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек». 21:51 20 из 29
  • 21. Activity. Задачи и Back Stack ● ● Задача — набор из нескольких activity. Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек». 21:51 21 из 29
  • 22. Activity. Задачи и Back Stack ● ● Задача — набор из нескольких activity. Порядок вызова activity сохраняется в стек — стек вызова или «обратный стек». 21:51 22 из 29
  • 23. Activity. Задачи и Back Stack ● android:launchMode – 21:51 "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр. 23 из 29
  • 24. Activity. Задачи и Back Stack ● Стандартное поведение: android:launchMode="standard" 21:51 24 из 29
  • 25. Activity. Задачи и Back Stack ● android:launchMode – "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр. – "singleTop" - если activity находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр. 21:51 25 из 29
  • 26. Activity. Задачи и Back Stack ● android:launchMode="singleTop" Объявлены как singleTop 21:51 26 из 29
  • 27. Activity. Задачи и Back Stack ● android:launchMode – "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр. – "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр. – "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах. 21:51 27 из 29
  • 28. Activity. Задачи и Back Stack ● android:launchMode="singleTask" 21:51 28 из 29
  • 29. Activity. Задачи и Back Stack ● android:launchMode – "standard" — стандартный режим, при котором повторный вызов activity создаёт новый экземпляр. – "singleTop" - если activty находиться на вершине стека текущей задачи, то новый экземпляр создан не будет. Во всех остальных случаях создается новый экземпляр. – "singleTask" - в рамках одной задачи возможен только один экземпляр activity. Несколько экземпляров может существовать в разных задачах. – "singleInstance" — activity может быть создана только один раз, до тех пор, пока она не будет уничтожена системой. 21:51 29 из 29