2. Responder a los cambios en la conectividad de red:
- Broadcast Receiver puede detectar cambios en la conexión a Internet (ACTION_CONNECTIVITY_CHANGE).
- Ejemplo: Muestra un mensaje cuando un dispositivo pierde la conexión a Internet.
3. Responder a los mensajes SMS entrantes:
- Broadcast Receiver puede detectar mensajes SMS entrantes (ACTION_SMS_RECEIVED).
- Ejemplo: Mostrar notificaciones o procesar mensajes SMS automáticamente.
5. Service: Proceso en segundo plano sin interfaz de usuario
Service es un componente esencial en una aplicación de Android que le permite ejecutar tareas en segundo plano sin una interfaz de usuario. Service es ideal para tareas que deben seguir ejecutándose incluso cuando la aplicación está inactiva, como la transmisión de música, la sincronización de datos o las actualizaciones de ubicación.
Mediante el uso de Service, puede asegurarse de que su aplicación siga funcionando correctamente incluso cuando los usuarios no interactúen directamente con la aplicación.
Tipos de servicio
Service se pueden dividir en dos tipos principales:
1. Started Service
Started Service es un tipo de Service que se inicia mediante otro componente, como Activity o Broadcast Receiver, y continuará ejecutándose hasta que se complete la tarea.
Cómo funciona:
- Started Service comienza llamando al método startService().
- Service ejecutará en segundo plano hasta que la tarea se complete o se detenga manualmente.
- Una vez completada la tarea, el Service se detendrá automáticamente.
Código de ejemplo:
Intent intent = new Intent(this, MyStartedService.class);
startService(intent);
2. Bound Service
Bound Service es un tipo de Service que se enlaza a otros componentes, como Activity o Fragment, y se ejecutará mientras esos componentes estén activos.
Cómo funciona:
- Bound Service comienza llamando al método bindService().
- Service ejecutará mientras haya componentes adjuntos a él.
- Si todos los componentes liberan la unión, el Service se detendrá automáticamente.
Código de ejemplo:
Intent intent = new Intent(this, MyBoundService.class);
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);
Otros artículos interesantes
La diferencia entre el servicio iniciado y el servicio enlazado
Aspectos | Started Service | Bound Service |
Cómo empezar | Empezando por startService(). | Empezando por bindService(). |
Duración | Se ejecuta hasta que se completa o se detiene la tarea. | Se ejecuta siempre que haya componentes conectados. |
Comunicación | No se puede comunicar directamente con otros componentes. | Puede comunicarse directamente con los componentes unidos. |
Ejemplos de uso | Transmisión de música, sincronización de datos. | Reproductor de música, comunicación en tiempo real. |
Ejemplos de uso de servicios en aplicaciones
1. Aplicaciones de música:
- Started Service: Reproduce música en segundo plano cuando la aplicación está inactiva.
- Bound Service: Controla la reproducción de música desde Activity o Fragment.
2. Aplicaciones deportivas:
- Started Service: Rastrea la ubicación del usuario mientras corre o anda en bicicleta.
- Bound Service: Muestra la ubicación en tiempo real y los datos de velocidad en el Activity.
3. Aplicación de chat:
- Started Service: Envía y recibe mensajes en segundo plano.
- Bound Service: Muestra nuevos mensajes en tiempo real en Activity.
6. Content Provider: Intercambio de datos entre aplicaciones
Content Provider es un componente esencial en las aplicaciones de Android que permite que las aplicaciones compartan datos con otras aplicaciones. Mediante el uso de Content Provider, puede dar acceso a los datos de su aplicación, como listas de contactos, archivos multimedia o bases de datos, a otras aplicaciones.
Content Provider también permite que su aplicación acceda a datos de otras aplicaciones, como acceder a la lista de contactos o la galería de fotos de un usuario.