Por favor, explique un Android Service
. ¿Cómo se diferencia de un Activity
? ¿Depende de un estado de aplicación como ejecutar en el primer plano/fondo ?Servicio de Android
Respuesta
Desde el Android Developer's SDK reference for Service:
Un servicio es un componente de aplicación que representa el deseo sea una de aplicación para realizar una operación de más largo en funcionamiento mientras no interactúa con el usuario o para proporcionar funcionalidad para el uso de otras aplicaciones.
Es muy importante tener en cuenta
que los servicios, al igual que otros objetos de aplicación, ejecute en el hilo principal de su proceso de alojamiento. Esto significa que, si su servicio va a realizar operaciones intensivas en la CPU (como la reproducción de MP3) o de bloqueo (como las redes), debe generar su propio hilo para hacer ese trabajo.
Esto es en contraste a una actividad que se entiende mejor como algo que un usuario ve e interactúa con directamente (una interfaz de usuario.)
un servicio, como se mencionó anteriormente, se puede utilizar para las operaciones de más largos corriendo eso continuará incluso si no tiene actividad en primer plano, pero puede, y eventualmente morirá por el ciclo de vida de Android si se deja en el estado "de fondo". Si necesita que su servicio continúe ejecutándose como una sola instancia sin que lo maten y lo reinicien, le recomiendo colocar startForeground(int id, Notification notification) en el método onCreate
de su Servicio y stopForeground(boolean removeNotification) en el método onDestroy
de su Servicio.
Por ejemplo, tengo una aplicación que usa un foreground Service
para registrar datos del acelerómetro toda la noche mientras el dispositivo Android está junto al cuerpo del usuario. A pesar de que no está obligado a estar activo, también tengo una Activity
que transmitió una Intent
a un BroadcastReceiver
dentro del Service
que cuenta la Service
que deberá emitir también un Intent
con los datos del acelerómetro como extras a un BroadcastReceiver
dentro del Activity
.
Código: SleepActivity SleepAccelerometerService
Buena suerte y quiero saber si usted necesita más información!
a El servicio es un contexto similar a la actividad pero no tiene una GUI.
Importante: ¡Un servicio no se ejecuta en un nuevo hilo!
leer sobre Service y también echa un vistazo How to always run a service in the background?
- 1. ¿Servicio compartido de Android?
- 2. Servicio de chat de Android
- 3. Aplicación de servicio de Android
- 4. Servicio Android android.os.BinderProxy error
- 5. Servicio de inicio en Android
- 6. Servicio de Android - Ping URL
- 7. servicio de Android se detiene
- 8. detener el servicio en android
- 9. Android findViewById en el servicio
- 10. Servicio Android que controla MediaPlayer
- 11. Android - Servicio no admitido: audio
- 12. Servicio de Android Diseño de hilo múltiple
- 13. Transmisión de Android de Servicio a Actividad
- 14. Servicio de accesibilidad de Android detectar notificación
- 15. 'Servicio' de Android de larga duración
- 16. android push notificación de servicio de comparación
- 17. Wake bloquea el servicio de Android recurrente
- 18. Android - Servicio de Antecedentes Periódicos - Asesoramiento
- 19. Creando un servicio de fondo en Android
- 20. Cliente de servicio WSDL/SOAP Android
- 21. Android - Interacción de actividad y servicio
- 22. Android, servicio de desvinculación y problemaServicio desconectado
- 23. Android webview dentro de un servicio?
- 24. Servicio de Android interactuando con múltiples actividades
- 25. Servicio con cola de prioridad en Android
- 26. Android Timer dentro de un servicio
- 27. Llamadas de servicio síncrono en Android
- 28. Crear solo una instancia de servicio (Android)
- 29. Android dimensiones jugar a pantalla de Servicio
- 30. Servicio remoto vs. Servicio local
su segundo enlace "SleepAccelerometerService" está roto. – gonzobrains
¿Necesita usar algún tipo de WakeLock para mantener su servicio en funcionamiento incluso cuando el teléfono se queda dormido? – gonzobrains
Tenga en cuenta que para cada operación de larga duración y con uso intensivo de CPU, es posible que desee ejecutar su código de servicio en una nueva secuencia ya que los Servicios se ejecutan de forma predeterminada y viven en el subproceso UI. Puede usar IntentService para la mayoría de sus necesidades. HandlerThread y ThreadPoolExecutor son alternativas más flexibles pero más complejas. –