Sobes.tech
Junior — Middle

Je potrebné zaregistrovať BroadcastReceiver v súbore manifest alebo ho je možné pripojiť programovo?

sobes.tech AI

Odpoveď od AI

V Androide je možné BroadcastReceiver registrovať dvoma spôsobmi:

  1. V manifeste (staticky) — tento spôsob umožňuje systému vedieť o prijímači aj v prípade, že aplikácia nie je spustená. Je vhodný na príjem broadcast správ, ktoré majú spustiť aplikáciu alebo vykonať akcie na pozadí.

  2. Programovo (dynamicky) — registrácia sa vykonáva v kóde, zvyčajne v metódach životného cyklu Activity alebo Service. Tento spôsob poskytuje väčšiu kontrolu: prijímač je aktívny iba počas registrácie, čo pomáha šetriť zdroje a predchádzať únikom.

Voľba spôsobu závisí od úlohy. Napríklad, pre systémové broadcast správy, ktoré musia byť vždy spracované, sa používa registrácia v manifeste. Pre lokálne alebo dočasné udalosti je vhodnejšia programová registrácia.

Príklad programovej registrácie:

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

// Registrácia
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

// Odregistrácia
unregisterReceiver(receiver);