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.