Каковы основные компоненты Android-приложений (активити / фрагмент / сервис / интент-фильтр)?
Основные компоненты Android-приложения — это строительные блоки, которые система использует для управления UI, фоновыми задачами и взаимодействием между приложениями.
1. Activity
Назначение: экран приложения, с которым взаимодействует пользователь.
Особенности:
Отображает UI через
setContentView().Имеет собственный жизненный цикл (
onCreate(),onStart(),onResume(),onPause(),onStop(),onDestroy()).Может запускать другие Activity через
Intent.
Пример: экран логина, главный экран, экран настроек.
2. Fragment
Назначение: часть UI внутри Activity, модульный компонент для переиспользуемого интерфейса.
Особенности:
Живёт внутри Activity и зависит от её жизненного цикла.
Позволяет строить адаптивный UI для разных экранов (например, планшет vs телефон).
Может иметь собственные методы жизненного цикла:
onCreateView(),onViewCreated(),onDestroyView().
Пример: список элементов в одной половине экрана, детальная панель в другой.
3. Service
Назначение: выполнение фоновых задач без UI.
Особенности:
Не взаимодействует напрямую с пользователем.
Может работать в фоне даже когда Activity закрыта.
Типы сервисов:
Started Service: запускается методом
startService(), работает пока явно не остановлен.Bound Service: привязывается к компоненту через
bindService(), работает пока есть клиенты.
Пример задач: загрузка файлов, воспроизведение музыки, синхронизация данных.
4. BroadcastReceiver
Назначение: приём и обработка широковещательных сообщений (broadcast) от системы или других приложений.
Особенности:
Может реагировать на события вроде: смена сети, завершение загрузки, SMS-сообщение.
Не имеет UI.
Может быть зарегистрирован в
AndroidManifest.xmlили динамически в коде.
Пример: приложение реагирует на подключение к Wi-Fi и начинает синхронизацию данных.
5. ContentProvider
Назначение: управление и предоставление доступа к данным приложения другим приложениям.
Особенности:
Позволяет безопасно читать/записывать данные.
Использует CRUD-операции:
query(),insert(),update(),delete().
Пример: контакты (
ContactsProvider), сохранённые заметки, база данных приложения.
6. Intent / Intent Filter
Intent: объект, который описывает действие, которое нужно выполнить (запуск Activity, Service или BroadCast).
Явный intent: указывает конкретный компонент.
val intent = Intent(this, DetailActivity::class.java) startActivity(intent)Неявный intent: указывает действие, система выбирает подходящий компонент.
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://example.com")) startActivity(intent)
Intent Filter: определяет, какие intent’ы может принимать компонент.
Указывается в
AndroidManifest.xml.Пример: Activity открывает ссылки
https://, Service обрабатывает custom action.
7. Ключевые зависимости
Activity и Fragment формируют UI.
Service и BroadcastReceiver — фоновые и системные события.
ContentProvider — данные, доступные для других приложений.
Intent/IntentFilter — механизм связи между всеми компонентами.
Last updated
Was this helpful?