Introducción a las estructuras de las aplicaciones de Android: actividades, fragmentos y receptores de transmisión

Ejemplos de uso de intents en aplicaciones

1. Aplicaciones de comercio electrónico:

  • Explicit Intent: Comienza Activity detalles del producto cuando el usuario hace clic en un elemento de la lista de productos.
  • Implicit Intent: Comparta los detalles del producto en aplicaciones de redes sociales o correos electrónicos.

2. Aplicaciones de redes sociales:

  • Explicit Intent: Inicia un comentario Activity cuando el usuario hace clic en el botón “Ver comentarios”.
  • Implicit Intent: Abre un enlace externo en el navegador predeterminado del usuario.

3. Aplicaciones de música:

  • Explicit Intent: Inicia Service para reproducir una canción en segundo plano.
  • Implicit Intent: Comparte canciones con otras aplicaciones como WhatsApp o Instagram.

4. Broadcast Receiver: Responder a los cambios del sistema

Broadcast Receiver es un componente esencial de una aplicación de Android que permite que tu aplicación responda a Broadcast Intent enviados por el sistema Android u otras aplicaciones. Broadcast Intent es un mensaje del sistema que te informa sobre un cambio de estado o un evento específico, como un cambio en el estado de la batería, la conectividad de red o un mensaje SMS entrante.

Mediante el uso de Broadcast Receiver, puede crear aplicaciones que respondan mejor a los cambios en el entorno o el sistema, proporcionando así una mejor experiencia de usuario.

Cómo funciona Broadcast Receiver

Broadcast Receiver se ejecuta en segundo plano y no tiene interfaz de usuario. Están diseñados para responder a Broadcast Intent de manera rápida y eficiente. Estos son algunos puntos clave sobre cómo funciona Broadcast Receiver:

1. Registro:

  • Broadcast Receiver debe estar registrado en el sistema Android para responder a Broadcast Intent.
  • El registro se puede realizar de forma estática (a través de AndroidManifest.xml) o dinámica (mediante código de programa).

Ejemplo de registro estático en AndroidManifest.xml:

  <receiver android:name=“.MyBroadcastReceiver”>
  <intent-filter>
  <action android:name=“android.intent.action.BATTERY_LOW” />
  </intent-filter>
   </receiver>

Ejemplo de inscripción dinámica en código:

  IntentFilter filter  new IntentFilter(Intent.ACTION_BATTERY_LOW);
 MyBroadcastReceiver receiver  new MyBroadcastReceiver();
   registerReceiver(receiver,  filter);

2. Tiempo de ejecución limitado:

  • Broadcast Receiver solo tuvo unos 5 segundos para completar la tarea.
  • Si una tarea tarda más tiempo, como descargar datos o procesar archivos, le recomendamos que inicie Service o utilice WorkManager.

3. Tareas factibles:

  • Enviar notificaciones: notifique a los usuarios sobre cambios de estado, como batería baja o conexiones a Internet.
  • Iniciar servicio: inicie  el servicio para realizar tareas en segundo plano, como la sincronización de datos.
  • Actualizar datos: actualice los datos locales o envíe datos a un servidor.

Tipos de intención de transmisión

Broadcast Intent se pueden dividir en dos tipos:

1. Normal Broadcast:

  • Se envía de forma asíncrona a todos los Broadcast Receiver registrados.
  • Ejemplo: ACTION_BOOT_COMPLETED (se envía cuando el dispositivo termina de arrancar).

2. Ordered Broadcast:

  • Se envía secuencialmente a un Broadcast Receiver a la vez.
  • Broadcast Receiver puede modificar los resultados o detener la propagación de Broadcast Intent.
  • Ejemplo: ACTION_NEW_OUTGOING_CALL (se envía cuando un usuario realiza una llamada saliente).

Ejemplos de uso de receptores de radiodifusión

1. Respuesta a los cambios de batería:

  • Broadcast Receiver puede detectar cuando la batería del dispositivo está baja (ACTION_BATTERY_LOW) o se está cargando (ACTION_BATTERY_OKAY).
  • Ejemplo: Enviar una notificación al usuario cuando la batería está baja.

Artículos más recientes