Middle
Milyen BroadcastReceiver típusokat ismersz?
sobes.tech MI
Válasz az MI-től
-
Rendezett Broadcast:
- A broadcast egymás után kerül átadásra a címzetteknek, egyenként.
- Minden címzett feldolgozhatja vagy módosíthatja a broadcast eredményét, valamint megszakíthatja azt, hogy ne jusson el a következő címzettig.
- A kézbesítés sorrendjét a címzett prioritása (
android:prioritya manifestben) határozza meg.
-
Normál Broadcast:
- Ez a leggyakoribb típus.
- A broadcast üzenet azonnal eljut minden érdeklődő címzetthez, mind deklaratív (a manifestben), mind dinamikus (a
Context.registerReceiver()segítségével) regisztrálva. - A fogadás sorrendje nem garantált.
- A címzett nem állíthatja meg az üzenet terjedését.
-
Helyi Broadcast:
- Csak egy alkalmazáson belüli üzenetcserére használják.
- A
LocalBroadcastManagerosztály által valósított. - Hatékonyabb és biztonságosabb, mivel az üzenetek nem hagyják el az alkalmazást, és nem befolyásolják a rendszer többi alkalmazását.
- Nem szükséges a címzettek deklarálása a manifestben.
- Csökkenti a rendszer terhelését a globális broadcastokhoz képest.
// Dinamikus BroadcastReceiver regisztráció példája
BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Üzenet feldolgozási logika
}
};
IntentFilter filter = new IntentFilter("MY_ACTION");
registerReceiver(myReceiver, filter);
// Normál Broadcast küldése példája
Intent broadcastIntent = new Intent("MY_ACTION");
sendBroadcast(broadcastIntent);
// A LocalBroadcastManager használata példája
// Példány megszerzése
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
// Regisztráció
localBroadcastManager.registerReceiver(myReceiver, filter);
// Küldés
localBroadcastManager.sendBroadcast(broadcastIntent);
// Sorrendelt Broadcast küldése példája
// sendOrderedBroadcast(orderedBroadcastIntent, null); // engedély megadása is lehetséges