Sobes.tech
Junior — Middle

Hoe verschillen de dynamische en statische manieren van registratie van BroadcastReceiver in Android?

sobes.tech AI

Antwoord van AI

Op Android zijn er twee manieren om een BroadcastReceiver te registreren — statisch en dynamisch.

Statisch wordt geregistreerd in het manifest van de app (AndroidManifest.xml). Deze receiver wordt door het systeem geactiveerd, zelfs als de app niet draait. Het is handig voor het luisteren naar systeem-broadcasts, maar vanaf Android 8.0 (Oreo) is statische registratie beperkt voor de meeste gebeurtenissen.

Dynamisch wordt programmatically geregistreerd in de code (meestal in een Activity of Service) met behulp van de methode registerReceiver(). Deze receiver is alleen actief zolang het object waarin hij is geregistreerd leeft, en vereist expliciete aanroep van unregisterReceiver(). Dynamische registratie is flexibeler en maakt het mogelijk om broadcast-berichten alleen tijdens de werking van de component te luisteren.

Voorbeeld van dynamische registratie:

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

// In onCreate() of onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

// In onDestroy() of onStop()
unregisterReceiver(receiver);