← Назад к вопросам

Что такое Activity?

1.0 Junior🔥 221 комментариев
#Android компоненты#Жизненный цикл и навигация

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое 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>

Ключевые аспекты для понимания

  1. Манифест: Каждая Activity должна быть задекларирована в файле AndroidManifest.xml с тегом <activity>. Там же задаются ее свойства: лейбл, тема, ориентация, intent-фильтры.
  2. Intent: Механизм Intent используется для запуска Activity (как внутри приложения, так и извне) и передачи данных между ними.
  3. Состояние: Activity отвечает за сохранение и восстановление своего состояния (например, текста в полях ввода) через методы onSaveInstanceState() и восстановление в onCreate() или onRestoreInstanceState(). Это критически важно при повороте экрана или при пересоздании Activity системой для экономии ресурсов.
  4. Одноактвити-архитектура: В современных подходах (часто с использованием Jetpack Compose или Navigation Component) наблюдается тенденция к использованию приложения с одной основной Activity (Single-Activity Architecture). В этом случае навигация и управление экранами реализуются через Fragments или Composable-функции внутри одной Activity, что упрощает управление общим состоянием и анимациями перехода.

Итог

Activity — это фундаментальный строительный блок классических Android-приложений, отвечающий за предоставление пользовательского интерфейса и управление его жизненным циклом. Понимание принципов работы Activity, ее жизненного цикла и взаимодействия с другими компонентами является обязательным для любого Android-разработчика. Несмотря на эволюцию архитектурных паттернов, Activity остается центральным звеном, с которого начинается выполнение большинства приложений.

Что такое Activity? | PrepBro