Sigo escuchando sobre servicios y receptores de transmisión . ¿Cuál es la diferencia entre ellos y cómo afectan el funcionamiento de mi teléfono Android desde mi punto de vista?
Sigo escuchando sobre servicios y receptores de transmisión . ¿Cuál es la diferencia entre ellos y cómo afectan el funcionamiento de mi teléfono Android desde mi punto de vista?
Respuestas:
Las aplicaciones de Android tienen tres tipos de componentes. En general, los usuarios no necesitan saber sobre ellos: son una forma para que los autores de aplicaciones programen comportamientos particulares en sus aplicaciones. Pero si está observando de cerca el comportamiento de sus aplicaciones, como con un administrador de tareas, o si está automatizando las cosas con una aplicación como Tasker, es útil comprender cómo encajan en el sistema.
Una actividad es el tipo de componente más familiar: es una ventana que puede ver: pantalla completa o tamaño de diálogo. Una actividad solo se ejecuta mientras se muestra en la pantalla. Una vez que abandone la actividad, Android mantendrá esa aplicación en la memoria lista para comenzar de nuevo, pero la actividad no se ejecutará, lo que significa que no usará la batería ni la red. Una aplicación inicia una actividad con una intención . La intención puede especificar explícitamente qué actividad iniciar, o puede especificar una acción para realizar (como abrir un archivo en particular). Si más de una actividad puede "manejar" la intención, verá el diálogo pidiéndole que elija una.
Un servicio es otro componente de la aplicación. Una vez que otro componente (tal vez una actividad u otro servicio) ha iniciado un servicio, se ejecuta en segundo plano hasta que se detiene. Esto significa que un servicio podría estar manteniendo su teléfono despierto (usando un bloqueo de activación ), agotando la batería o usando muchos datos de red, sin que se muestre nada en la pantalla.
Las aplicaciones pueden usar servicios para realizar procesos de larga duración en segundo plano, como descargar archivos de un servidor, o buscar correo electrónico o verificar su ubicación. Aunque los servicios no se muestran o interactúan directamente con usted, aún se muestran en la lista "Aplicaciones en ejecución". Desde la aplicación Configuración , elija Aplicaciones o Administrador de aplicaciones , y luego Ejecutando . Puede detener un servicio de esa manera, pero generalmente no es necesario. Debido a que los servicios no son directamente visibles, Android los considera menos importantes que las actividades, por lo que serán los primeros en ser asesinados cuando su teléfono necesite más memoria.
Los receptores de transmisión son el tercer tipo de componente. Al igual que los servicios, solo existen en segundo plano y no interactúan contigo directamente. Pero a diferencia de los servicios, no pueden seguir ejecutándose o realizar tareas largas: existen para responder a eventos. Y a diferencia de las actividades y servicios, se puede iniciar más de un receptor de transmisión de una vez.
Un componente transmite una intención, posiblemente a una aplicación, pero con mayor frecuencia sin especificar una aplicación en particular. En este caso, la intención generalmente representa un evento que sucedió, como que la batería se está agotando. El sistema encuentra todos los receptores de transmisión que han registrado un interés (usando un filtro de intención ), y ejecuta cada uno a su vez. Cada receptor de transmisión puede reaccionar de inmediato, por ejemplo, creando una notificación, o puede iniciar un servicio o una actividad para tomar más medidas. Tan pronto como el receptor de transmisión haya manejado el evento, se detiene y no volverá a ejecutarse hasta que se transmita otro evento similar.
Un ejemplo de los tres componentes que trabajan juntos es cuando descargas una aplicación de Google Play. Primero, la actividad de Google Play proporciona la interfaz visual para que pueda elegir el contenido que desea descargar. La lista de aplicaciones podría ser una actividad; Al hacer clic en el botón "Instalar", se inicia otra actividad para mostrar el diálogo de confirmación o pago. Cuando confirma, la actividad de diálogo inicia un servicio. El servicio continuará descargando el contenido incluso cuando la actividad haya finalizado y ya no se esté ejecutando.
Pero tal vez el teléfono pierde la conexión a Internet mientras se descarga la nueva aplicación. Si esto sucede, el servicio de descarga de Google Play registrará un receptor de transmisión, con un filtro de intención para decir que está interesado en los cambios de conectividad de red, y luego el servicio se detendrá. Cuando el teléfono se conecta a Internet, el sistema transmite un evento. Android iniciará el receptor de transmisión que registró el servicio Google Play, junto con cualquier otro receptor de transmisión que esté esperando ese evento. En este caso, el receptor de difusión iniciará nuevamente el servicio de descarga. El servicio creará notificaciones a medida que avanza la descarga, y cuando finalice, enviará su propia transmisión para informar a otras aplicaciones que el nuevo paquete se ha instalado, y luego se detendrá. A su vez, esto comenzará a transmitir receptores desde otras aplicaciones,
En resumen:-