#android
Отметил в процессе чтения некоторой литературы для себя один тонкий нюанс о вызовах методов в Android-приложении, а именно то, что методы жизненного цикла Activity вызывает не приложение, которое мы реализуем и в которое их помещаем. Вызывает Система в зависимости от действий Пользователя или ситуации в Системе. Система оповещает этими методами приложение об изменении состояния. То есть, мы указываем в этих методах, что делать приложению, когда Система будет это приложение оповещать, в данном случае, о событиях изменения жизненного цикла. Почему то раньше я не обращал на это внимание. Интересно следующее. Какие еще методы, кроме методов жизненного цикла, прописанные/указанные в приложении вызывает непосредственно Система, а не приложение? Корректно ли вообще задавать такой вопрос?
Ответы
Ответ 1
В общем то все, что помечается @override и это идет не из наследников вашего класса относится к системе. Конкретно по активити вы можете установить курсор на класс активити и нажать CTRL + O (override metods .., так же в основном меню: Code -> Override Metods) и посмотреть, какие методы можно переопределить. В основном системный отклик - это колбэки, (как жизненного цикла), узнать колбэк можно по начальному on- в названии, как onCreate(). Некоторые из колбэков, вызываемых системой (колбэки жизненного цикла не включены сюда): onConfigurationChanged() - изменение в конфигурации (смена языка, ориентации, подключение устройств и тп.) onBackPressed() - нажатие системной кнопки "назад" onSaveInstanceState()/onRestoreInstanceState() - запись/восcтановление состояния onTouchEvent() - касания экрана onRequestPermissionsResult() - результат запроса разрешений onLowMemory() - недостаточно памятиОтвет 2
То, что вы называете системой, это по сути контейнер, в котором разворачивается какое-либо приложение. Контейнер получает запросы извне и создаёт по мере необходимости определённые объекты приложения. Т.е. не мы определяем момент создания объектов нашего приложения, а возможно даже и очерёдность их создания, а контейнер сам решает, какие объекты создавать и каков их жизненный цикл. Помимо вашего приложения у этого контейнера может быть ещё множество других приложений и, конечно, большое разнообразие системных переменных и объектов, о которых вообще можно не знать разработчику. Задача разработчика приложения - написать такое приложение, которое будет соответствовать требованиям данного контейнера. А задача разработчиков контейнера - создать контейнер, который реализует все необходимые интерфейсы, которые могут понадобиться запускаемым в нём приложениям.
Комментариев нет:
Отправить комментарий