Sobes.tech
Junior — Middle

Moet BroadcastReceiver in het manifestbestand worden geregistreerd of kan het programmatisch worden gekoppeld?

sobes.tech AI

Antwoord van AI

In Android kan een BroadcastReceiver op twee manieren worden geregistreerd:

  1. In de manifest (statisch) — deze methode stelt het systeem in staat om de ontvanger te kennen, zelfs als de app niet actief is. Dit is handig voor het ontvangen van broadcast-berichten die de app moeten starten of acties op de achtergrond moeten uitvoeren.

  2. Programma-matig (dynamisch) — de registratie gebeurt in de code, meestal in de lifecycle-methoden van Activity of Service. Deze methode biedt meer controle: de ontvanger is alleen actief zolang hij geregistreerd is, wat helpt om bronnen te besparen en leaks te voorkomen.

De keuze van de methode hangt af van de taak. Bijvoorbeeld, voor systeem-breed broadcast-berichten die altijd verwerkt moeten worden, wordt registratie in de manifest gebruikt. Voor lokale of tijdelijke gebeurtenissen wordt de programmeermethode aanbevolen.

Voorbeeld van programmeermatige registratie:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // gebeurtenisverwerking
    }
};

// Registratie
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

// Ontregistratie
unregisterReceiver(receiver);