Sobes.tech
Junior — Middle

Hogyan valósítsuk meg az aktuális alkalmazás keretein belül csak működő Broadcast Receiver komponenst?

sobes.tech MI

Válasz az MI-től

Annak érdekében, hogy a Broadcast Receiver csak a jelenlegi alkalmazás keretein belül működjön, dinamikusan kell regisztrálni kóddal, nem a manifestben. A registerReceiver() segítségével történő dinamikus regisztrációval a fogadó csak az alkalmazáson belül küldött broadcast üzeneteket fogja kapni.

Példa:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // esemény feldolgozása
    }
};

// Regisztráció Activity-ben vagy Service-ben
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Ne felejtsd el leiratkozni
unregisterReceiver(receiver);

Így korlátozod a Broadcast Receiver hatókörét a jelenlegi alkalmazásra, mivel a rendszer vagy más alkalmazások nem küldhetnek ilyen helyi broadcast üzeneteket.