Sobes.tech
Junior — Middle

Milyen esetekben nem megengedett a Broadcast Receiver regisztrálása az Android manifestben?

sobes.tech MI

Válasz az MI-től

Az Android manifestben történő Broadcast Receiver regisztráció nem megengedett a következő esetekben:

  • Dinamikus vagy privát eseményekhez: Ha a fogadó csak az alkalmazáson belüli eseményekre kell reagáljon, vagy olyan eseményekre, amelyek nem érhetők el más alkalmazások számára, akkor jobb, ha programozottan (dinamikusan) regisztráljuk a registerReceiver() segítségével a kódban.

  • Néhány rendszeresemény esetén az új Android verziókban: Android 8.0-tól (API 26) kezdve sok rendszerüzenet (például ACTION_NEW_PICTURE, ACTION_NEW_SMS) nem regisztrálható a manifestben a rendszer terhelésének csökkentése és a biztonság növelése érdekében. Ilyen esetekben a fogadókat dinamikusan kell regisztrálni.

  • Ha életciklus-ellenőrzés szükséges: A manifestben történő regisztráció miatt a fogadó folyamatosan aktív marad, ami szükségtelen erőforrás-felhasználáshoz vezethet. Ha csak bizonyos időpontokban (pl. amikor egy aktivitás aktív) kell működnie, akkor dinamikus regisztrációt kell alkalmazni.

Ezért a manifestben történő regisztráció nem megengedett vagy nem hatékony olyan események esetén, amelyeket csak az alkalmazás aktív állapotában kell feldolgozni, vagy olyan rendszereseményeknél, amelyek a legújabb Android-verziókban tiltottak a statikus regisztrációra.