Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
В чём отличие регистрации BroadcastReceiver в манифесте и в коде (runtime-регистрация)?
При объявлении в манифесте приёмник работает даже если приложение не запущено (до Android 8.0, с ограничениями в O+), а runtime-регистрация (registerReceiver) действует только пока жив активный компонент (Activity/Service) и служит для динамических фильтров. Manifest-регистрация удобна для системных событий, runtime — для событий в пределах экрана.
Какие проблемы могут возникнуть при перехвате Intent через BroadcastReceiver?
При перехвате могут быть уязвимости: подставить злонамеренный Intent (Intent-spoofing), вызвать переполнение очереди при многих Broadcast, получить лишние System-Broadcast после Android 8.0. Также возможны утечки ресурсов при незакрытых регистрации и таймауты, если приёмник обрабатывает тяжёлую работу в main-потоке.
Что такое BroadcastReceiver и как продлить время его жизни?
BroadcastReceiver — компонент, который получает Intent кратковременно в onReceive. По умолчанию после завершения метода система убивает процесс или освобождает ресурсы. Чтобы продлить время, внутри onReceive можно вызвать goAsync() и получить PendingResult, затем выполнить асинхронную работу в другом потоке и в конце вызвать pendingResult.finish(). Либо сразу стартовать Foreground Service для длительной работы.
Как передать текст, полученный через Intent, в BroadcastReceiver и сохранить его на бэкенде?
Текст можно получить в BroadcastReceiver через intent.getStringExtra("ключ"). Затем его можно передать на бэкенд с помощью сетевого клиента, например Retrofit.
Чем отличаются методы с value receiver и pointer receiver?
Value receiver получает копию значения, pointer receiver — указатель на оригинал, позволяя изменять поля и избегать лишних копирований.
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
3
Сложность:
5