Hogyan különböznek a dinamik és statikus BroadcastReceiver regisztrációs módszerek Androidban?
sobes.tech MI
Válasz az MI-től
Androidon két módja van a BroadcastReceiver regisztrálásának — statikus és dinamikus.
Statikus a alkalmazás manifestjében (AndroidManifest.xml) kerül regisztrálásra. Ez a fogadó a rendszer által aktiválódik, még akkor is, ha az alkalmazás nincs futásban. Hasznos rendszerüzenetek hallgatására, de az Android 8.0 (Oreo) óta a statikus regisztráció a legtöbb esemény esetén korlátozott.
Dinamikus programozott módon regisztrálható a kódban (általában Activity vagy Service-ben) a registerReceiver() metódus segítségével. Ez a fogadó csak akkor aktív, amíg a regisztrált objektum él, és kifejezetten az unregisterReceiver() hívását igényli. A dinamikus regisztráció rugalmasabb, és lehetővé teszi, hogy csak a komponens működése közben hallgasson broadcast üzeneteket.
Dinamikus regisztráció példája:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// esemény feldolgozása
}
};
// onCreate() vagy onStart() alatt
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// onDestroy() vagy onStop() alatt
unregisterReceiver(receiver);