Sobes.tech
Junior — Middle

Ako implementovať komponentu Broadcast Receiver, ktorá funguje iba v rámci aktuálnej aplikácie?

sobes.tech AI

Odpoveď od AI

Aby Broadcast Receiver fungoval iba v rámci aktuálnej aplikácie, musí byť dynamicky registrovaný kódom, nie v manifeste. Pri dynamickej registrácii pomocou registerReceiver() príjemca bude prijímať iba tie broadcast správy, ktoré sú odoslané v rámci aplikácie.

Príklad:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // spracovanie udalosti
    }
};

// Registrácia v Activity alebo Service
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Nezabudnite odregistrovať
unregisterReceiver(receiver);

Týmto obmedzujete rozsah pôsobnosti Broadcast Receiver na aktuálnu aplikáciu, pretože systémové alebo iné aplikácie nemôžu takéto lokálne broadcast správy odosielať.