Sobes.tech
Junior — Middle

Como implementar um componente Broadcast Receiver que funcione apenas dentro da aplicação atual?

sobes.tech IA

Resposta da IA

Para que o Broadcast Receiver funcione apenas no âmbito da aplicação atual, deve ser registado dinamicamente através do código, e não no manifesto. Com o registo dinâmico usando registerReceiver(), o receptor receberá apenas as mensagens broadcast enviadas dentro da aplicação.

Exemplo:

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

// Registo em uma Activity ou Service
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Não se esqueça de cancelar o registo
unregisterReceiver(receiver);

Desta forma, você limita o escopo do Broadcast Receiver à aplicação atual, pois outros sistemas ou aplicações não poderão enviar essas mensagens broadcast locais.