Назад к вопросам
МТС Линк
Junior — Middle
72
Каким образом реализовать прием и обработку широковещательных сообщений в Android-приложении?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для приема и обработки широковещательных сообщений (broadcasts) в Android-приложении используется класс BroadcastReceiver.
Основные шаги:
- Создать класс, наследующий
BroadcastReceiver, и переопределить методonReceive(Context context, Intent intent). - Зарегистрировать ресивер:
- Статически — в манифесте (
AndroidManifest.xml) с указанием фильтра интентов (<intent-filter>). - Динамически — в коде с помощью
registerReceiver()и указанием фильтра.
- Статически — в манифесте (
Пример динамической регистрации:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Обработка сообщения
String action = intent.getAction();
if ("android.net.conn.CONNECTIVITY_CHANGE".equals(action)) {
// Реагируем на изменение подключения
}
}
}
// В Activity или Service
MyReceiver receiver = new MyReceiver();
IntentFilter filter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(receiver, filter);
// Не забыть отписаться
unregisterReceiver(receiver);
Важно учитывать, что начиная с Android 8.0 (API 26) многие широковещательные сообщения нельзя принимать через статическую регистрацию в манифесте, рекомендуется использовать динамическую регистрацию.
Таким образом, прием широковещательных сообщений реализуется через BroadcastReceiver и регистрацию соответствующих фильтров.