Je třeba registrovat BroadcastReceiver v souboru manifestu nebo lze jej připojit programově?
sobes.tech AI
Odpověď od AI
V Androidu lze BroadcastReceiver zaregistrovat dvěma způsoby:
-
V manifestu (staticky) — tento způsob umožňuje systému vědět o příjemci i tehdy, když aplikace neběží. Je vhodný pro příjem vysílacích zpráv, které mají spouštět aplikaci nebo provádět akce na pozadí.
-
Programově (dynamicky) — registrace probíhá v kódu, obvykle v metodách životního cyklu Activity nebo Service. Tento způsob nabízí větší kontrolu: příjemce je aktivní pouze při registraci, což pomáhá šetřit zdroje a předcházet únikům.
Volba způsobu závisí na úkolu. Například pro systémové vysílací zprávy, které musí být vždy zpracovány, se používá registrace v manifestu. Pro lokální nebo dočasné události je vhodnější programová registrace.
Příklad programové registrace:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// zpracování události
}
};
// Registrace
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// Odregistrace
unregisterReceiver(receiver);