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ť.