ݺߣ

ݺߣShare a Scribd company logo
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

Лекция 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