SlideShare a Scribd company logo
1 of 22
DIOR-DNA
Activity, Жизненный цикл
Составные части приложения
ANDROID



                             2
СОСТАВНЫЕ ЧАСТИ ПРИЛОЖЕНИЯ ANDROID


Традиционная модель программирования

                                     • При запуске ОС
                                       традиционно
                    Процесс
                                       используют единую
                                       точку входа – main
                  Приложение         • ОС загружает код в
                                       процесс, а потом
                                       приступает к
                       main
                                       исполнению




                                                        3
СОСТАВНЫЕ ЧАСТИ ПРИЛОЖЕНИЯ ANDROID


Модель программирования Android

                                     • Программы Android
                                       должны быть
                    Процесс
                                       рассчитаны на
                                       то, что система
                   JVM Dalvik          будет запускать их в
                                       различных местах
                  Приложение
                                     • Программа – это
                                       набор
                                       взаимодействующих
                                       компонентов




                                                         4
СОСТАВНЫЕ ЧАСТИ ПРИЛОЖЕНИЯ ANDROID


Компоненты Android

                                                 Элемент для взаимодействия с
                                      Activity   пользователем. Обычно целиком
                                                 занимает экран.


                                                 Решают фоновые задачи, которые
                                      Service    могут никак не отображаться на
                                                 экране. Например, плеер.

                                                 Компоненты, в целом аналогичные
                                     Content     вебсервисам. Идентифицируются с
                                                 помощью URI.
                                     Provider    (Query, Insert, Update, Delete)

                                     Broadcast   Подписывается на события системы
                                                 (других приложений). Не имеет
                                     Receiver    своего UI.




                                                                                 5
ACTIVITY



           6
ACTIVITY


Что такое активность?
Элемент для взаимодействия с
пользователем.




     Пример простой активности
ACTIVITY


Intent
Намерение – абстрактное описание
функции, которую одна активность должна
выполнить по требованию другой.

 Одна активность шлѐт Intent...                                        Activity 1


private View.OnClickListener toSecondActivityOnClick = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TextView result = (TextView) findViewById(R.id.result);
        String resultValue = result.getText().toString();
        Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
        intent.putExtra("result", resultValue);
        startActivity(intent);
    }
};


     Исходный код




                                                                                      8
ACTIVITY


Intent
...вторая активность его                                          Activity 2

обрабатывает

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_form);


      Intent intent = getIntent();
      if (intent != null) {
          String resultValue = intent.getStringExtra("result");
          TextView textView = (TextView) findViewById(R.id.textView);
          textView.setText(resultValue);
      }
}



     Исходный код




                                                                               9
ACTIVITY


Task

                 Приложение 1                    Приложение 2          Приложение 3



                A1             A2                    A3                        A4




   Приложение        Активность                  Действие юзверя

   Сообщения         Просмотр списка сообщений   Юзверь выбирает сообщение из списка

   Сообщения         Просмотр сообщения          Юзверь переходит в меню Menu > Contact

   Контакты          Просмотр контакта           Юзверь выбирает Call Mobile

   Телефон           Звонок на мобильный номер
                     контакта



                                                                                          10
ACTIVITY


Task

                         • Задача – это стек
                           активностей.
                         • В связи с наличием
                           стека активностей
                           вводится понятие
                           стек переходов
                           назад (Back Stack).




   Управление задачами



                                               11
ЖИЗНЕННЫЙ ЦИКЛ



                 12
ЖИЗНЕННЫЙ ЦИКЛ


Жизненный цикл как он есть

                          Подгонка жизненного
                          цикла под
                          приложение –
                          верный способ
                          написать такую
                          программу, которая
                          будет неожиданно
                          выходить из строя.




 Check it out yourself!

 Try it out yourself!



                                           13
ЖИЗНЕННЫЙ ЦИКЛ


Очистка памяти
     – Уничтожение активности
                 Активность “уничтожается” (вызывается метод
                 onDestroy()), когда система хочет сбросить данный экземпляр
                 активности. Если в вашем приложении нет на него ссылок, то
                 это перспективный кандидат для сборщика мусора.

      – Завершение процесса
                 В условиях дефицита памяти Android ищет процессы без
                 активных компонентов. В крайних случаях, могут быть
                 завершены и с активными компонентами. В простых
                 приложениях процесс может стать кандидатом на
                 удаление, после того, как к текущей активности будет
                 применен метод onPause().




                                                                               14
ЖИЗНЕННЫЙ ЦИКЛ


OnCreate
                   Вызывается после создания
                   экземпляра Activity.
                   • Производится большая часть инициализации
                     активности: создание view, связывание данных с
                     представлением.
    Killable: NO   • Аргументом метода является объект
                     Bundle, содержащий сохраненное состояние.
                     Если сохраненного состояния нет, то аргумент
                     имеет значение null.




                                                                      15
ЖИЗНЕННЫЙ ЦИКЛ


OnRestart
                   Вызывается только в том
                   случае, если до этого активность
                   была остановлена (onStop).
                   • Остановлена – означает, что активность не
                     находится на переднем плане и не
    Killable: NO     взаимодействует с пользователем.
                   • Вызывается до метода onStart.




                                                                 16
ЖИЗНЕННЫЙ ЦИКЛ


OnStart
                   Вызывается когда активность
                   становится видна пользователю.
                   • Не означает, что пользователь может с ней
                     взаимодействовать.

    Killable: NO




                                                                 17
ЖИЗНЕННЫЙ ЦИКЛ


OnResume
                   Вызывается когда пользователь
                   может начинать взаимодействовать
                   с активностью.


    Killable: NO




                                                      18
ЖИЗНЕННЫЙ ЦИКЛ


OnPause
                      Вызывается когда пользователь
                      теряет возможность
                      взаимодействовать с активностью.
                      • Становится видна другая активность и
                        пользователь начинает взаимодействовать с ней.
                      • Текущая активность все еще может быть видна
   Killable: YES        пользователю.
                      • Хорошее место для сохранения состояния
      Killable: NO      приложения, остановки ресурсоемких операций
      starting with
      Honeycomb         (например, анимация).
                      • Этот метод должен отрабатывать очень
                        быстро, т.к. onResume новой активности
                        вызывается только после onPause предыдущей.




                                                                         19
ЖИЗНЕННЫЙ ЦИКЛ


OnStop
                   Активность больше не видна
                   пользователю.



   Killable: YES




                                                20
ЖИЗНЕННЫЙ ЦИКЛ


OnDestroy
                   Активность будет удалена.
                   • Или система решила уничтожить активность для
                     в условиях дефицита памяти.
                   • Или кто-то вызвал метод finish активности.



   Killable: YES




                                                                    21
ВОПРОСЫ?



           22

More Related Content

Viewers also liked

Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)Noveo
 
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - GraphicsNoveo
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10Denis Vasilyev
 
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в DelphiWebinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в DelphiDenis Vasilyev
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)Noveo
 
Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Noveo
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Noveo
 
Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Noveo
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Noveo
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Noveo
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Noveo
 
Android - 05 - Android basics
Android - 05 - Android basicsAndroid - 05 - Android basics
Android - 05 - Android basicsNoveo
 
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Denis Vasilyev
 
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 SeattleWebinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 SeattleDenis Vasilyev
 

Viewers also liked (20)

Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)Fragments (Lecture 09 – Fragments)
Fragments (Lecture 09 – Fragments)
 
Lec 10
Lec 10Lec 10
Lec 10
 
Lec 12
Lec 12Lec 12
Lec 12
 
Android - 10 - Graphics
Android - 10 - GraphicsAndroid - 10 - Graphics
Android - 10 - Graphics
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
Webinar: Использование UWP/WinRT Contracts и Notification в Windows 10
 
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в DelphiWebinar: Разработка мобильного приложения для заучивания стихов в Delphi
Webinar: Разработка мобильного приложения для заучивания стихов в Delphi
 
Database (Lecture 14 – database)
Database (Lecture 14 – database)Database (Lecture 14 – database)
Database (Lecture 14 – database)
 
Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)Введение в Android-разработку (Lecture 06 – basics)
Введение в Android-разработку (Lecture 06 – basics)
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
 
Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)Работа с графической подсистемой (Lecture 10 – Graphics)
Работа с графической подсистемой (Lecture 10 – Graphics)
 
Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)Стилизация текста (HTML5 тема 05 - стилизация текста)
Стилизация текста (HTML5 тема 05 - стилизация текста)
 
Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)Семантика текста (HTML5 тема 04 - семантика текста)
Семантика текста (HTML5 тема 04 - семантика текста)
 
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
Ссылки, списки и меню (HTML5 тема 06 - ссылки, списки и меню)
 
Android - 05 - Android basics
Android - 05 - Android basicsAndroid - 05 - Android basics
Android - 05 - Android basics
 
Thread
ThreadThread
Thread
 
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
 
Lec 13
Lec 13Lec 13
Lec 13
 
Lec 9
Lec 9Lec 9
Lec 9
 
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 SeattleWebinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
Webinar: Новые визуальные VCL-компоненты для Windows 10 в RAD Studio 10 Seattle
 

Similar to DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)

Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1Technopark
 
Programming Guide
Programming GuideProgramming Guide
Programming Guideguest63e09c
 
Лекция 4
Лекция 4Лекция 4
Лекция 4itc73
 
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"Dmitry Savchenko
 
MS Swit 2012 - Windows 8 Application Lifecycle
MS Swit 2012 - Windows 8 Application LifecycleMS Swit 2012 - Windows 8 Application Lifecycle
MS Swit 2012 - Windows 8 Application LifecycleДенис Резник
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими рукамиRoman Dvornov
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelperDataArt
 
JEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советыJEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советыdmalykhanov
 
Mobile automation with Appium
Mobile automation with AppiumMobile automation with Appium
Mobile automation with AppiumOksanaBisyuk
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений Mykhail Galushko
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложенийЭкосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложенийIT Weekend
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовSergey Borisov
 
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"Yandex
 

Similar to DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл) (20)

Android осень 2013 лекция 1
Android осень 2013 лекция 1Android осень 2013 лекция 1
Android осень 2013 лекция 1
 
Views обзор
Views обзорViews обзор
Views обзор
 
Programming Guide
Programming GuideProgramming Guide
Programming Guide
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
Fragments&Loaders
Fragments&LoadersFragments&Loaders
Fragments&Loaders
 
Лекция 4
Лекция 4Лекция 4
Лекция 4
 
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
 
MS Swit 2012 - Windows 8 Application Lifecycle
MS Swit 2012 - Windows 8 Application LifecycleMS Swit 2012 - Windows 8 Application Lifecycle
MS Swit 2012 - Windows 8 Application Lifecycle
 
Remote (dev)tools своими руками
Remote (dev)tools своими рукамиRemote (dev)tools своими руками
Remote (dev)tools своими руками
 
Spring in java
Spring in javaSpring in java
Spring in java
 
AndroidMVPHelper
AndroidMVPHelperAndroidMVPHelper
AndroidMVPHelper
 
JEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советыJEE Conf: Архитектура Android приложений: полезные и вредные советы
JEE Conf: Архитектура Android приложений: полезные и вредные советы
 
Java 9 - кратко о новом
Java 9 -  кратко о новомJava 9 -  кратко о новом
Java 9 - кратко о новом
 
Mobile automation with Appium
Mobile automation with AppiumMobile automation with Appium
Mobile automation with Appium
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложенийЭкосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений
 
Java Framework for Multi-agent Systems
Java Framework for Multi-agent SystemsJava Framework for Multi-agent Systems
Java Framework for Multi-agent Systems
 
Автоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотовАвтоматическое тестирование мобильных приложений на основе скриншотов
Автоматическое тестирование мобильных приложений на основе скриншотов
 
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
Роман Бусыгин "Автосборки iOS-проектов в Яндексе"
 
Tdd php
Tdd phpTdd php
Tdd php
 

DIOR-DNA, Anton Zvonov, Part 1, Activities (жизненный цикл)

  • 3. СОСТАВНЫЕ ЧАСТИ ПРИЛОЖЕНИЯ ANDROID Традиционная модель программирования • При запуске ОС традиционно Процесс используют единую точку входа – main Приложение • ОС загружает код в процесс, а потом приступает к main исполнению 3
  • 4. СОСТАВНЫЕ ЧАСТИ ПРИЛОЖЕНИЯ ANDROID Модель программирования Android • Программы Android должны быть Процесс рассчитаны на то, что система JVM Dalvik будет запускать их в различных местах Приложение • Программа – это набор взаимодействующих компонентов 4
  • 5. СОСТАВНЫЕ ЧАСТИ ПРИЛОЖЕНИЯ ANDROID Компоненты Android Элемент для взаимодействия с Activity пользователем. Обычно целиком занимает экран. Решают фоновые задачи, которые Service могут никак не отображаться на экране. Например, плеер. Компоненты, в целом аналогичные Content вебсервисам. Идентифицируются с помощью URI. Provider (Query, Insert, Update, Delete) Broadcast Подписывается на события системы (других приложений). Не имеет Receiver своего UI. 5
  • 7. ACTIVITY Что такое активность? Элемент для взаимодействия с пользователем. Пример простой активности
  • 8. ACTIVITY Intent Намерение – абстрактное описание функции, которую одна активность должна выполнить по требованию другой. Одна активность шлѐт Intent... Activity 1 private View.OnClickListener toSecondActivityOnClick = new View.OnClickListener() { @Override public void onClick(View v) { TextView result = (TextView) findViewById(R.id.result); String resultValue = result.getText().toString(); Intent intent = new Intent(getApplicationContext(), SecondActivity.class); intent.putExtra("result", resultValue); startActivity(intent); } }; Исходный код 8
  • 9. ACTIVITY Intent ...вторая активность его Activity 2 обрабатывает public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_form); Intent intent = getIntent(); if (intent != null) { String resultValue = intent.getStringExtra("result"); TextView textView = (TextView) findViewById(R.id.textView); textView.setText(resultValue); } } Исходный код 9
  • 10. ACTIVITY Task Приложение 1 Приложение 2 Приложение 3 A1 A2 A3 A4 Приложение Активность Действие юзверя Сообщения Просмотр списка сообщений Юзверь выбирает сообщение из списка Сообщения Просмотр сообщения Юзверь переходит в меню Menu > Contact Контакты Просмотр контакта Юзверь выбирает Call Mobile Телефон Звонок на мобильный номер контакта 10
  • 11. ACTIVITY Task • Задача – это стек активностей. • В связи с наличием стека активностей вводится понятие стек переходов назад (Back Stack). Управление задачами 11
  • 13. ЖИЗНЕННЫЙ ЦИКЛ Жизненный цикл как он есть Подгонка жизненного цикла под приложение – верный способ написать такую программу, которая будет неожиданно выходить из строя. Check it out yourself! Try it out yourself! 13
  • 14. ЖИЗНЕННЫЙ ЦИКЛ Очистка памяти – Уничтожение активности Активность “уничтожается” (вызывается метод onDestroy()), когда система хочет сбросить данный экземпляр активности. Если в вашем приложении нет на него ссылок, то это перспективный кандидат для сборщика мусора. – Завершение процесса В условиях дефицита памяти Android ищет процессы без активных компонентов. В крайних случаях, могут быть завершены и с активными компонентами. В простых приложениях процесс может стать кандидатом на удаление, после того, как к текущей активности будет применен метод onPause(). 14
  • 15. ЖИЗНЕННЫЙ ЦИКЛ OnCreate Вызывается после создания экземпляра Activity. • Производится большая часть инициализации активности: создание view, связывание данных с представлением. Killable: NO • Аргументом метода является объект Bundle, содержащий сохраненное состояние. Если сохраненного состояния нет, то аргумент имеет значение null. 15
  • 16. ЖИЗНЕННЫЙ ЦИКЛ OnRestart Вызывается только в том случае, если до этого активность была остановлена (onStop). • Остановлена – означает, что активность не находится на переднем плане и не Killable: NO взаимодействует с пользователем. • Вызывается до метода onStart. 16
  • 17. ЖИЗНЕННЫЙ ЦИКЛ OnStart Вызывается когда активность становится видна пользователю. • Не означает, что пользователь может с ней взаимодействовать. Killable: NO 17
  • 18. ЖИЗНЕННЫЙ ЦИКЛ OnResume Вызывается когда пользователь может начинать взаимодействовать с активностью. Killable: NO 18
  • 19. ЖИЗНЕННЫЙ ЦИКЛ OnPause Вызывается когда пользователь теряет возможность взаимодействовать с активностью. • Становится видна другая активность и пользователь начинает взаимодействовать с ней. • Текущая активность все еще может быть видна Killable: YES пользователю. • Хорошее место для сохранения состояния Killable: NO приложения, остановки ресурсоемких операций starting with Honeycomb (например, анимация). • Этот метод должен отрабатывать очень быстро, т.к. onResume новой активности вызывается только после onPause предыдущей. 19
  • 20. ЖИЗНЕННЫЙ ЦИКЛ OnStop Активность больше не видна пользователю. Killable: YES 20
  • 21. ЖИЗНЕННЫЙ ЦИКЛ OnDestroy Активность будет удалена. • Или система решила уничтожить активность для в условиях дефицита памяти. • Или кто-то вызвал метод finish активности. Killable: YES 21