Sobes.tech
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.