Sobes.tech
Junior — Middle

Можете ли да обясните какво е компонентът BroadcastReceiver и как работи в Android?

sobes.tech AI

Отговор от AI

BroadcastReceiver е компонент на Android, който позволява на приложението да получава и реагира на broadcast съобщения (broadcasts) от системата или други приложения.

Как работи BroadcastReceiver:

  • Той се регистрира за определени събития (например, свързване към мрежа, получаване на SMS, стартиране на устройството).
  • Когато се случи събитие, системата изпраща съответния broadcast.
  • Регистрираните BroadcastReceiver получават този broadcast и изпълняват зададения код.

Обикновено BroadcastReceiver се използва за:

  • Реагиране на системни събития без постоянно стартиране на приложението.
  • Стартиране на фонови задачи по график или при изпълнение на определени условия.

Пример за прост BroadcastReceiver, който реагира при включване на устройството:

public class BootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            // Действия след стартиране на устройството
        }
    }
}

За регистрация може да се използва манифестът или да се направи динамично в кода. Важно е да се помни, че от Android 8.0 (Oreo) има ограничения за фоновата работа на BroadcastReceiver, и за някои събития трябва да се използват други механизми, например JobScheduler.