2 votos

Servicios sin proceso

En la pantalla Ajustes > Aplicaciones, en "En ejecución", algunas aplicaciones aparecen como activas (es decir, con un servicio en ejecución) a pesar de no tener ningún proceso en ejecución y de no ocupar memoria.

¿Por qué están en este estado? ¿Están esperando algún tipo de acontecimiento?

1voto

StartCoding Puntos 101

Sí, se trata de servicios en caché. Se utilizan para aumentar el tiempo de inicio del servicio. En Android Developers - Procesos y subprocesos (a partir del 13 de febrero de 2015)

  1. Proceso vacío

    Un proceso que no contiene ningún componente de aplicación activo. La única razón para mantener vivo este tipo de proceso es por motivos de caché, para mejorar el tiempo de arranque la próxima vez que un componente necesite ejecutarse en él. El sistema suele matar estos procesos para equilibrar los recursos generales del sistema entre las cachés de procesos y las cachés subyacentes del núcleo.

Android clasifica un proceso en el nivel más alto que puede, basándose en la importancia de los componentes actualmente activos en el proceso. Por ejemplo, si un proceso aloja un servicio y una actividad visible, el proceso se clasifica como proceso visible, no como proceso de servicio.

Además, la clasificación de un proceso puede aumentar porque otros procesos dependen de él: un proceso que sirve a otro proceso nunca puede tener una clasificación inferior a la del proceso al que sirve. Por ejemplo, si un proveedor de contenidos en el proceso A sirve a un cliente en el proceso B, o si un servicio en el proceso A está vinculado a un componente en el proceso B, el proceso A siempre se considera al menos tan importante como el proceso B.

Dado que un proceso que ejecuta un servicio tiene un rango más alto que un proceso con actividades en segundo plano, una actividad que inicia una operación de larga duración podría hacer bien en iniciar un servicio para esa operación, en lugar de simplemente crear un hilo de trabajo, especialmente si la operación probablemente durará más que la actividad. Por ejemplo, una actividad que está subiendo una foto a un sitio web debería iniciar un servicio para realizar la subida de forma que ésta pueda continuar en segundo plano incluso si el usuario abandona la actividad. El uso de un servicio garantiza que la operación tendrá al menos la prioridad de "proceso de servicio", independientemente de lo que le ocurra a la actividad. Esta es la misma razón por la que los receptores de difusión deberían emplear servicios en lugar de simplemente poner las operaciones que consumen tiempo en un hilo.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X