Если вы работали с языками программирования C, C ++ или Java, значит, вы видели, что ваша программа запускается из функции main () . Аналогичным образом система Android запускает свою программу с помощью Activity, начиная с вызова метода обратного вызова onCreate () . Существует последовательность методов обратного вызова, которые запускают действие, и последовательность методов обратного вызова, которые разрушают действие, как показано на приведенной ниже диаграмме жизненного цикла действия: ( Изображение предоставлено: android.com )
Класс Activity определяет следующие обратные вызовы, т.е. события. Вам не нужно реализовывать все методы обратного вызова. Тем не менее, важно, чтобы вы понимали каждый из них и реализовали те, которые гарантируют, что ваше приложение ведет себя так, как ожидают пользователи.
Sr.No | Обратный звонок и описание |
---|---|
1 |
OnCreate () Это первый обратный вызов, который вызывается при первом создании операции. |
2 |
OnStart () Этот обратный вызов вызывается, когда действие становится видимым для пользователя. |
3 |
onResume () Это вызывается, когда пользователь начинает взаимодействовать с приложением. |
4 |
OnPause () Приостановленное действие не получает пользовательский ввод и не может выполнить какой-либо код и вызывается, когда текущее действие приостанавливается, а предыдущее действие возобновляется. |
5 |
OnStop () Этот обратный вызов вызывается, когда активность больше не видна. |
6 |
OnDestroy () Этот обратный вызов вызывается до того, как действие будет уничтожено системой. |
7 |
onRestart () Этот обратный вызов вызывается, когда действие возобновляется после его остановки. |
OnCreate ()
Это первый обратный вызов, который вызывается при первом создании операции.
OnStart ()
Этот обратный вызов вызывается, когда действие становится видимым для пользователя.
onResume ()
Это вызывается, когда пользователь начинает взаимодействовать с приложением.
OnPause ()
Приостановленное действие не получает пользовательский ввод и не может выполнить какой-либо код и вызывается, когда текущее действие приостанавливается, а предыдущее действие возобновляется.
OnStop ()
Этот обратный вызов вызывается, когда активность больше не видна.
OnDestroy ()
Этот обратный вызов вызывается до того, как действие будет уничтожено системой.
onRestart ()
Этот обратный вызов вызывается, когда действие возобновляется после его остановки.
пример
Этот пример проведет вас через простые шаги, чтобы показать жизненный цикл активности приложений Android. Выполните следующие шаги, чтобы изменить приложение Android, которое мы создали в главе « Hello World Example» —
шаг | Описание |
---|---|
1 | Вы будете использовать Android studio для создания приложения Android и назовите его HelloWorld в пакете com.example.helloworld, как описано в главе « Пример Hello World» . |
2 | Измените основной файл активности MainActivity.java, как описано ниже. Сохраните остальные файлы без изменений. |
3 | Запустите приложение, чтобы запустить эмулятор Android, и проверьте результат изменений, внесенных в приложение. |
Ниже приводится содержимое измененного основного файла активности src / com.example.helloworld / MainActivity.java . Этот файл включает в себя каждый из основных методов жизненного цикла. Метод Log.d () был использован для создания сообщений журнала —
package com.example.helloworld; import android.os.Bundle; import android.app.Activity; import android.util.Log; public class MainActivity extends Activity { String msg = "Android : "; /** Called when the activity is first created. */ @Override public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(msg, "The onCreate() event"); } /** Called when the activity is about to become visible. */ @Override protected void onStart() { super.onStart(); Log.d(msg, "The onStart() event"); } /** Called when the activity has become visible. */ @Override protected void onResume() { super.onResume(); Log.d(msg, "The onResume() event"); } /** Called when another activity is taking focus. */ @Override protected void onPause() { super.onPause(); Log.d(msg, "The onPause() event"); } /** Called when the activity is no longer visible. */ @Override protected void onStop() { super.onStop(); Log.d(msg, "The onStop() event"); } /** Called just before the activity is destroyed. */ @Override public void onDestroy() { super.onDestroy(); Log.d(msg, "The onDestroy() event"); } }
Класс активности загружает все компоненты пользовательского интерфейса, используя файл XML, доступный в папке res / layout проекта. Следующий оператор загружает компоненты пользовательского интерфейса из файла res / layout / activity_main.xml :
setContentView(R.layout.activity_main);
Приложение может иметь одно или несколько действий без каких-либо ограничений. Каждое действие, которое вы определяете для своего приложения, должно быть объявлено в вашем файле AndroidManifest.xml, а основное действие для вашего приложения должно быть объявлено в манифесте с помощью <intent-filter>, который включает действие MAIN и категорию LAUNCHER следующим образом:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.tutorialspoint7.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Если действие MAIN или категория LAUNCHER не объявлены для одного из ваших действий, значок вашего приложения не будет отображаться в списке приложений на главном экране.
Давайте попробуем запустить наш модифицированный Hello World! Приложение, которое мы только что изменили. Я предполагаю, что вы создали свой AVD во время настройки среды. Чтобы запустить приложение из студии Android, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Android-студия устанавливает приложение на AVD и запускает его, и, если все в порядке с вашими настройками и приложением, оно отобразит окно эмулятора, и вы должны увидеть следующие сообщения журнала в окне LogCat в Android-студии —
08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event 08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event 08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event
Попробуем нажать кнопку блокировки экрана на эмуляторе Android, и он сгенерирует следующие сообщения о событиях в окне LogCat в Android Studio:
08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event 08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event
Давайте снова попробуем разблокировать ваш экран в эмуляторе Android, и он сгенерирует следующие сообщения о событиях в окне LogCat в студии Android:
08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event 08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event
Далее, давайте снова попробуем нажать кнопку «Назад». на эмуляторе Android, и он будет генерировать следующие сообщения о событиях в окне LogCat в студии Android, и это завершает жизненный цикл активности для приложения Android.