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.