Sobes.tech
Junior — Middle

Как да реализираме компонент Broadcast Receiver, който работи само в рамките на текущото приложение?

sobes.tech AI

Отговор от AI

За да работи Broadcast Receiver само в рамките на текущото приложение, той трябва да бъде регистриран динамично чрез код, а не в манифеста. При динамична регистрация с помощта на registerReceiver(), приемникът ще получава само тези широковещателни съобщения, които са изпратени вътре в приложението.

Пример:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // обработка на събитието
    }
};

// Регистрация в Activity или Service
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Не забравяйте да се отпишете
unregisterReceiver(receiver);

По този начин ограничавате обхвата на Broadcast Receiver до текущото приложение, тъй като системните или други приложения не могат да изпращат такива локални широковещателни съобщения.