Что такое Activity?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое Activity в Android?
Activity — это один из ключевых компонентов приложения Android, представляющий собой отдельный экран с пользовательским интерфейсом (UI). Его можно рассматривать как "окно" или "страницу", с которой взаимодействует пользователь. Каждое приложение обычно состоит из нескольких Activity, которые вместе формируют целостный пользовательский опыт.
Основные характеристики и роль Activity
- Контейнер для UI: Каждая Activity содержит иерархию View и ViewGroup объектов (виджетов и layouts), которые определяют, что пользователь видит на экране и с чем может взаимодействовать.
- Точка входа в приложение: Одна из Activity объявляется как "основная" (launcher activity) в манифесте приложения (
AndroidManifest.xml). Именно она запускается первой при открытии приложения пользователем. - Жизненный цикл (Lifecycle): Activity имеет четко определенный жизненный цикл — последовательность состояний, через которые она проходит от создания до уничтожения. Разработчик должен управлять этими состояниями, переопределяя соответствующие callback-методы (
onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy()), чтобы обеспечить корректное поведение приложения (сохранение данных, освобождение ресурсов, плавные переходы). - Взаимодействие с пользователем: Activity обрабатывает пользовательский ввод (касания, нажатия клавиш) и системные события.
- Навигация: Activity могут запускать друг друга, образуя стек (back stack). Это позволяет пользователю перемещаться между экранами приложения, используя кнопку "Назад".
Пример простой Activity
Рассмотрим базовую реализацию:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. Устанавливаем макет (layout) для этого экрана
setContentView(R.layout.activity_main)
// 2. Инициализируем элементы UI и логику
val button: Button = findViewById(R.id.my_button)
button.setOnClickListener {
// 3. Запуск новой Activity при нажатии кнопки
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
}
override fun onResume() {
super.onResume()
// Метод вызывается, когда Activity становится активной и готовой для взаимодействия.
// Здесь можно возобновить анимации, обновлять данные и т.д.
}
override fun onPause() {
// Метод вызывается, когда Activity частично скрывается (другое Activity поверх).
// Здесь следует приостановить энергозатратные операции.
super.onPause()
}
}
<!-- activity_main.xml - макет, связанный с Activity выше -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to Next Screen" />
</LinearLayout>
Ключевые аспекты для понимания
- Манифест: Каждая Activity должна быть задекларирована в файле
AndroidManifest.xmlс тегом<activity>. Там же задаются ее свойства: лейбл, тема, ориентация, intent-фильтры. - Intent: Механизм Intent используется для запуска Activity (как внутри приложения, так и извне) и передачи данных между ними.
- Состояние: Activity отвечает за сохранение и восстановление своего состояния (например, текста в полях ввода) через методы
onSaveInstanceState()и восстановление вonCreate()илиonRestoreInstanceState(). Это критически важно при повороте экрана или при пересоздании Activity системой для экономии ресурсов. - Одноактвити-архитектура: В современных подходах (часто с использованием Jetpack Compose или Navigation Component) наблюдается тенденция к использованию приложения с одной основной Activity (Single-Activity Architecture). В этом случае навигация и управление экранами реализуются через Fragments или Composable-функции внутри одной Activity, что упрощает управление общим состоянием и анимациями перехода.
Итог
Activity — это фундаментальный строительный блок классических Android-приложений, отвечающий за предоставление пользовательского интерфейса и управление его жизненным циклом. Понимание принципов работы Activity, ее жизненного цикла и взаимодействия с другими компонентами является обязательным для любого Android-разработчика. Несмотря на эволюцию архитектурных паттернов, Activity остается центральным звеном, с которого начинается выполнение большинства приложений.