Junior — Middle
Jak zaimplementować komponent Broadcast Receiver, który działa tylko w ramach bieżącej aplikacji?
sobes.tech AI
Odpowiedź od AI
Aby Broadcast Receiver działał tylko w ramach bieżącej aplikacji, musi być rejestrowany dynamicznie za pomocą kodu, a nie w manifeście. Przy dynamicznej rejestracji za pomocą registerReceiver(), odbiornik będzie otrzymywał tylko te komunikaty broadcast wysyłane wewnątrz aplikacji.
Przykład:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// obsługa zdarzenia
}
};
// Rejestracja w Activity lub Service
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);
// Nie zapomnij odwołać się do rejestracji
unregisterReceiver(receiver);
W ten sposób ograniczasz zakres działania Broadcast Receiver do bieżącej aplikacji, ponieważ systemowe lub inne aplikacje nie będą mogły wysyłać takich lokalnych wiadomości broadcast.