Um BroadcastReceiver é componente Android que escuta Intents broadcast sistema ou app-definidos e executa lógica breve em resposta. É mecanismo publish-subscribe do Android.
BOOT_COMPLETED, BATTERY_LOW, TIMEZONE_CHANGED, CONNECTIVITY_CHANGE, PACKAGE_INSTALLEDsendBroadcast(), sendOrderedBroadcast()| Estático (Manifest) | Dinâmico (Context.registerReceiver) |
|---|---|
Declarado no AndroidManifest.xml | Registrado em código (Activity, Service, Application) |
| Sempre ativo (mesmo app não rodando) | Ativo só enquanto contexto registrador vive |
| Recebe broadcasts implícitos + explícitos | Pode receber broadcasts sticky |
| Maior impacto bateria (acorda app) | Menor impacto, lifecycle escopado |
Obrigatório para BOOT_COMPLETED | Preferido para eventos UI-relacionados |
onReceive()goAsync() usado)abortBroadcast(), passar resultado próximo receiver
// Registro Manifest <receiver android:name=".BootReceiver" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> // Registro dinâmico (em Activity.onStart()) val filter = IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION) registerReceiver(networkReceiver, filter) // Em onStop() unregisterReceiver(networkReceiver)
CONNECTIVITY_ACTION)onReceive() mínimo — delegue para WorkManager/ServicegoAsync() para trabalho ligeiramente mais longo (ainda < ~30s)android:exported explicitamente (obrigatório API 31+)BroadcastReceiver é cola para notificação eventos cross-component, cross-app, sistema-para-app. Use para gatilhos breves; passe trabalho real para WorkManager ou Services.
Tecnologia Eletrônica © [www.351231.com]