Junior
¿Qué es BroadcastReceiver en Android?
sobes.tech AI
Respuesta de la IA
Este es un componente que responde a mensajes broadcast del sistema o del usuario. No tiene interfaz de usuario y está diseñado para realizar operaciones en segundo plano en respuesta a eventos específicos.
Características principales:
- Responde a intenciones (Intents) con una acción (action) específica.
- Componente de corta duración, su método
onReceive()se ejecuta en un corto período. - No está destinado a operaciones prolongadas. Si se requiere trabajo prolongado, se debe iniciar un Service desde
onReceive(). - Puede registrarse de forma estática en el manifiesto o dinámicamente en el código.
Ejemplos de uso:
- Responder a cambios en el estado de la red (
android.net.conn.CONNECTIVITY_CHANGE). - Responder a la carga del sistema (
android.intent.action.BOOT_COMPLETED). - Procesar SMS entrantes.
- Recibir mensajes personalizados enviados por otros componentes de la aplicación u otras aplicaciones.
Registro en el manifiesto:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" para que otras aplicaciones puedan enviar intents
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Registro en el código:
// En una Activity o Service
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// En onDestroy() o onStop() - es importante cancelar el registro!
unregisterReceiver(receiver);
Clase BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Aquí se ejecuta el código al recibir el Intent
// Por ejemplo:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "¡Acción personalizada recibida!", Toast.LENGTH_SHORT).show();
}
}
}