Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Android: broadcast, manifest, runtime, registration, lifecycle

В чём отличие регистрации BroadcastReceiver в манифесте и в коде (runtime-регистрация)?

Проверяет знание областей видимости и времени жизни разных способов регистрации.

Короткий ответ

При объявлении в манифесте приёмник работает даже если приложение не запущено (до Android 8.0, с ограничениями в O+), а runtime-регистрация (registerReceiver) действует только пока жив активный компонент (Activity/Service) и служит для динамических фильтров. Manifest-регистрация удобна для системных событий, runtime — для событий в пределах экрана.

Длинный ответ

Манифест

  • Приёмник живёт всё время, получает Intent от системы.

  • Ограничен в Android O+ для большинства событий (нужен Foreground Service).

Runtime

  • context.registerReceiver(receiver, filter) в onStart/onResume, unregisterReceiver в onStop/onPause.

  • Подписка динамическая, меньше ресурсов, можно менять фильтр.

Использование:

  • Manifest: подключение по загрузке системы (BOOT_COMPLETED).

  • Runtime: реакции внутри UI (изменение сети, custom-Broadcast).

Вывод:

Выбирайте manifest для долговременных событий, runtime — для кратковременных.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Android

    Android

Ключевые слова

#broadcast

#manifest

#runtime

#registration

#lifecycle

Подпишись на Android Developer в телеграм