Понимание жизненного цикла Activity
По мере того, как пользователь перемещается по вашему приложению, выходит из него и снова заходит, Activity в вашем приложении переходят через различные состояния в своем жизненном цикле. Класс Activity имеет несколько обратных функций, которые нам помогают узнать что состояние изменилось: система создает, останавливает или возобновляет действие, либо уничтожает процесс, в котором находится действие. Простыми словами нам часто необходимо знать в каком состоянии находится наше приложение, например когда пользователь использует наше приложение и вдруг получает входящий вызов то приложение временно пропадает из вида и перекрывается новым экраном с входящим вызовом, когда это происходит нам необходимо остановить все ненужные процессы в приложении, вот тут нам и приходит на помощь жизненный цикл Activity. С помощью функций жизненного цикла мы сможем совершать какие то действия в приложении в нужный момент.
У Activity есть 6 основных функций жизненного цикла
onCreate(), onStart(), onResume(), onPause(), onStop(), и onDestroy(). Система вызывает данные функции при изменении состояния Activity.
onCreate()
Данная функция вызывается когда activity впервые создано. По оканчанию создания activity , activity входит в состояние Created . В функции onCreate() , мы пишем код который нам нужно запустить только один раз за весь жизненный цикл activity. Например в функции onCreate() мы можем заполнять какой либо список который не будет меняться или выбираем цвет элементов и.т.д . Данная функция принимает параметр savedInstanceState, это есть Bundle а именно это объект который содержит предыдущее состояние activity. Если activity не существовало ранее то значение объекта Bundle равно null.
onStart()
Когда Activity входит в состояние Started state, система вызывает данную фуекцию. Функция onStart() делает видимым Activity для пользователя, Activity выходит на передний план и становится интерактивным для пользователя. Например это отличное место для кода инициализации UI (User Interface) компонентов.
Функция onStart() выыпалняется очень быстро, и как в случае с Created state, activity не находится в состоянии Started state. Как только функция вызвана activity сразу переходит в Resumed state, и система вызывает функциюonResume() .
onResume()
Когда activity входит в состояние Resumed state, оно становится на передний план, и тогда система вызывает метод onResume(). Это состояние в котором приложение взаимодействует с пользователем. Приложение находится в данном состоянии до тех пор пока что либо не произойдет и оно уйдет с первого плана (например входящий звонок).
Когда процесс прерван activity входит в состояние Paused state, и система вызывает функцию onPause() .
Если activity возврощается в состояние Resumed state из состояния Paused state, система снова вызывает функцию onResume() . По этой причине мы должны инициализировать компоненты в функцииonResume() которые мы остановили в функции onPause(), а также инициализируем все компоненты которые нужно инициализировать в состоянии Resumed state.
onPause()
Система вызывает данный метод как только поймет что пользователь покидает приложение (это не означает что activity будет уничтожено); это означает что activity больше не находиться на переднем плане (оно может быть видно например в multi-window mode). Используйте функцию onPause() для операций которые должны быть остановленны во время паузы пока Activity находиться в состоянии Paused state, и ожидается скорое возобновление работы activity. Есть несколько причин почему activity входит в данное состояние. Например:
- Какие либо действия прервали работу приложения, как описано ввыше в функции onResume() . Это основные причины.
- В Android 7.0 (API level 24) или выше, несколько приложений могут работать в multi-window mode. Так как только одно приложение находиться на переднем плане, система вводит в состояние паузы все остальные activity.
- Когда появляется на экране диалоговое окно которое не полностью перекрывает наше activity, activity входит в состояние паузы так как оно уже не на переднем плане.
onStop()
Когда activity больше не видно на экране, оно входит в состояние Stopped state, и ситема вызывает функциюonStop() . Это происходит например когда новое activity перекрывает весь экран. а также данная функция onStop() может быть вызвана когда activity завершило.
В функции onStop() нам нужно освободить все ресурсы которые нам не нужны , когда приложение не видно на экране.
onDestroy()
onDestroy() эта функция вызываеться когда activity “разрушенно” по причине:
- Activity закончило свою работу (пользователь нажал на кнопку выхода из приложения или была запущенна функция
finish()), или - Система “разрушила” activity по причине поворота экрана или использования multi-window mode
Данный метод это последний метод который вызывает activity перед тем как activity будет “разрушено”
В функции onDestroy() мы должны быть “освобождены все ресурсы которые не были освобождены в функцииonStop().
В следующих уроках мы сразу перейдем к практике и будем создавать простенькие приложения для изучения программирования. Я решил обойтись без лишней теории а только добавил основное. Теории полно в интернете так что если кому интересно подробнее узнать о каких то элементах то можете по гуглить и обязательно найдете кучу информации, ну а на моих уроках вы научитесь программировать на практике! Всего вам доброго и увидемся на следующем уроке!!