Ako sa líšia dynamické a statické spôsoby registrácie BroadcastReceiver v Android?
sobes.tech AI
Odpoveď od AI
Na Androide existujú dva spôsoby registrácie BroadcastReceiver — statický a dynamický.
Statický sa registruje v manifeste aplikácie (AndroidManifest.xml). Tento prijímač je aktivovaný systémom aj keď aplikácia neběží. Je vhodný na počúvanie systémových broadcast správ, ale od Android 8.0 (Oreo) je statická registrácia obmedzená pre väčšinu udalostí.
Dynamický sa registruje programovo v kóde (zvyčajne v Activity alebo Service) pomocou metódy registerReceiver(). Tento prijímač je aktívny iba pokiaľ žije objekt, v ktorom je zaregistrovaný, a vyžaduje explicitné volanie unregisterReceiver(). Dynamická registrácia je flexibilnejšia a umožňuje počúvať broadcast správy iba počas behu komponentu.
Príklad dynamickej registrácie:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// spracovanie udalosti
}
};
// V onCreate() alebo onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// V onDestroy() alebo onStop()
unregisterReceiver(receiver);