É necessário registar o BroadcastReceiver no ficheiro de manifesto ou pode-se ligá-lo programaticamente?
sobes.tech IA
Resposta da IA
No Android, o BroadcastReceiver pode ser registado de duas formas:
-
No manifesto (estaticamente) — este método permite que o sistema saiba do receptor mesmo que a aplicação não esteja em execução. É útil para receber mensagens broadcast que devem iniciar a aplicação ou realizar ações em segundo plano.
-
Programaticamente (dinamicamente) — o registo ocorre no código, geralmente nos métodos do ciclo de vida da Activity ou Service. Este método oferece maior controlo: o receptor está ativo apenas enquanto estiver registado, o que ajuda a economizar recursos e evitar fugas.
A escolha do método depende da tarefa. Por exemplo, para mensagens broadcast do sistema que devem ser processadas sempre, usa-se o registo no manifesto. Para eventos locais ou temporários, prefere-se o registo programático.
Exemplo de registo programático:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// processamento do evento
}
};
// Registo
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// Cancelar registo
unregisterReceiver(receiver);