Проблема
Приложения для платформы 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()");
}
Рис. 1. Состояния жизненного цикла приложения для платформы Android