Kako se razlikuju dinamički i statički načini registracije BroadcastReceiver-a u Androidu?
sobes.tech АИ
Одговор од АИ
На Android postoji dva načina za registraciju BroadcastReceiver — statički i dinamički.
Statički se registruje u manifestu aplikacije (AndroidManifest.xml). Ovaj prijemnik se aktivira od strane sistema čak i ako aplikacija nije pokrenuta. Pogodan je za slušanje sistemskih broadcast poruka, ali od Android 8.0 (Oreo), statička registracija je ograničena za većinu događaja.
Dinamički se programatski registruje u kodu (obično u Activity ili Service) pomoću metode registerReceiver(). Ovaj prijemnik je aktivan samo dok je objekat u kojem je registrovan živ, i zahteva eksplicitni poziv unregisterReceiver(). Dinamička registracija je fleksibilnija i omogućava slušanje broadcast poruka samo tokom rada komponenti.
Primer dinamičke registracije:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// obrada događaja
}
};
// U onCreate() ili onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// U onDestroy() ili onStop()
unregisterReceiver(receiver);