Приложение Android: запуск, остановка, заморозка

Илья Дергунов

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

Корпорация Oracle: история, продукты, решенияПроблема

Приложения для платформы Android не имеют метода main; вам нужно понять, как они начинаются и как их остановить или как они останавливаются сами (засыпают / замораживаются).

Решение

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

Обсуждение

Приложение для платформы Android работает в своем собственном процессе Unix, поэтому в целом оно не может напрямую влиять на какое-либо другое запущенное приложение. Интерфейсы среды выполнения Android Runtime взаимо­действуют с операционной системой, чтобы сообщать вам, когда ваше приложение
запускается, когда пользователь переключается на другое приложение и т.д. Для при­ложений Android существует четко определенный жизненный цикл.

Приложение Android может находиться в одном из трех состояний.

  • Активно, когда приложение видимо для пользователя и работает.
  • Приостановлено, когда приложение частично затенено и потеряло фокус ввода (например, когда диалоговое окно перекрывает вашу активность - спит).
  • Остановлено, когда приложение полностью скрыто от просмотра.

Ваше приложение будет переходить из одного состояния в другое по мере того, как система Android будет выполнять вызовы из текущего класса Activity в соответствующие моменты времени.

void onCreate(Bundle savedInstanceState)
void onStart()
void onResume()
void onRestart()
void onPause()
void onStop()
void onDestroy()

Диаграмма состояний для этого жизненного цикла показана на рис. 1.

Системный вызов метода onCreate() определяет способ, благодаря которому вы узнаете, что активность начала выполняться. Здесь обычно выполняется работа конс­труктора: настройка главного окна с помощью метода setContentView(), добавление слушателей кнопок для выполнения работы (включая запуск дополнительной актив­ности) и т.д. Это тот самый метод, которого требует даже простейшая активность платформы Android.

Следует подчеркнуть, что большинство приложений сегодня создают свой поль­зовательский интерфейс из фрагментов. Фрагмент — это часть пользовательского интерфейса для активности. Например, в первое время после появления платформы Android типичное приложение для детализированных списков использовало две ак­тивности: одну — для списка, другую — для деталей. Разумеется, это все еще допус­кается, но имеет один недостаток: на планшете или смартфоне с большим экраном в альбомном режиме оба представления невозможно расположить рядом. Эту про­блему можно решить, разделив активность на несколько фрагментов. Фрагмент может существовать только внутри активности. Жизненный цикл фраг­мента аналогичен циклу активности, но имеет несколько дополнительных методов.

Вы можете увидеть вызовы различных методов жизненного цикла, создав фик­тивный проект в интегрированной среде разработки Eclipse и переопределив все ме­тоды жизненного цикла с помощью журнальных отладочных инструкций:

@Override
public void onPause() {
    Log.d(TAG, "In method onPause()");
}

Состояния жизненного цикла приложения для платформы Android

Рис. 1. Состояния жизненного цикла приложения для платформы Android

Вас заинтересует / Intresting for you:

Версии платформы Android
Версии платформы Android 2509 просмотров Илья Дергунов Sun, 04 Nov 2018, 14:44:59
О платформе Android
О платформе Android 4889 просмотров Илья Дергунов Mon, 29 Oct 2018, 17:07:02
Запросы разрешений от системы ...
Запросы разрешений от системы ... 4489 просмотров dbstalker Sun, 24 Feb 2019, 06:24:29
Понимание архитектуры приложен...
Понимание архитектуры приложен... 2667 просмотров Илья Дергунов Mon, 29 Oct 2018, 17:31:25
Войдите чтобы комментировать