Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, czym jest komponent BroadcastReceiver i jak działa w Androidzie?

sobes.tech AI

Odpowiedź od AI

BroadcastReceiver to komponent systemu Android, który pozwala aplikacji na odbieranie i reagowanie na wiadomości broadcast (rozgłoszone) od systemu lub innych aplikacji.

Jak działa BroadcastReceiver:

  • Rejestruje się na określone zdarzenia (np. połączenie z siecią, odebranie SMS, uruchomienie urządzenia).
  • Gdy zdarzenie wystąpi, system wysyła odpowiedni broadcast.
  • Zarejestrowane BroadcastReceivery odbierają ten broadcast i wykonują przypisany kod.

Zazwyczaj BroadcastReceiver jest używany do:

  • Reagowania na zdarzenia systemowe bez konieczności ciągłego uruchamiania aplikacji.
  • Uruchamiania zadań w tle według harmonogramu lub gdy spełnione są określone warunki.

Przykład prostego BroadcastReceiver, który reaguje na włączenie urządzenia:

public class BootReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
            // Działania po uruchomieniu urządzenia
        }
    }
}

Rejestrację można wykonać w manifeście lub dynamicznie w kodzie. Ważne jest, aby pamiętać, że od Androida 8.0 (Oreo) istnieją ograniczenia dotyczące pracy w tle BroadcastReceiver, a dla niektórych zdarzeń konieczne jest użycie innych mechanizmów, np. JobScheduler.