Como se diferenciam os métodos dinâmico e estático de registo do BroadcastReceiver no Android?
sobes.tech IA
Resposta da IA
No Android, existem duas formas de registar um BroadcastReceiver — estático e dinâmico.
Estático é registado no manifesto da aplicação (AndroidManifest.xml). Este receptor é ativado pelo sistema mesmo que a aplicação não esteja em execução. É conveniente para ouvir mensagens broadcast do sistema, mas a partir do Android 8.0 (Oreo), o registo estático está limitado para a maioria dos eventos.
Dinâmico é registado programaticamente no código (geralmente em um Activity ou Service) usando o método registerReceiver(). Este receptor está ativo apenas enquanto o objeto em que foi registado estiver vivo, e requer uma chamada explícita a unregisterReceiver(). O registo dinâmico é mais flexível e permite ouvir mensagens broadcast apenas durante a execução do componente.
Exemplo de registo dinâmico:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// processamento do evento
}
};
// Em onCreate() ou onStart()
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// Em onDestroy() ou onStop()
unregisterReceiver(receiver);