¿Cómo evitar que un servicio se cierre?

Estoy usando la última ROM de stock para mi teléfono (SGS3, variante de Vodafone, aunque rooteado) y he instalado un programa de rastreo en vivo por GPS que permanece en la barra de tareas como un servicio todo el tiempo (y así es como lo quiero).

Cuando cargo algunos juegos que consumen mucha memoria RAM que he instalado, a veces ese servicio muere (junto con otros procesos que no me importan) porque Android intenta liberar memoria automáticamente (no tengo ningún Task Killer instalado).

¿Hay alguna manera de hacer que ese servicio tenga una prioridad más alta, de modo que no se elimine junto con las otras cosas que el recolector de basura de Android tira a la basura cuando abro mis enormes aplicaciones favoritas?

¡Gracias de antemano!

Respuestas (2)

Pruebe Auto Memory Manager y configure sus valores minfree en el servidor secundario más bajos para que tenga menos posibilidades de eliminar los servicios. También puede aumentar la prioridad OOM del servicio a 0 (los valores más bajos significan menos posibilidades de que lo eliminen), también parte de la aplicación.

De las preguntas frecuentes : he establecido la prioridad de una aplicación en "mantener viva", pero vuelve a cambiar después de un tiempo. ¿¿Lo que está sucediendo?? Desafortunadamente esto está fuera de mi control. Tengo la capacidad de cambiar las prioridades pero, lamentablemente, el núcleo sigue administrando las prioridades y establecerá las prioridades según lo considere adecuado. Como nunca tuvimos la intención de cambiar las prioridades manualmente, creo que puede no haber ninguna disposición para apegarse a las prioridades ajustadas manualmente.
No todas las aplicaciones son perfectas y Android tiene limitaciones. Pero aún no conozco ninguna otra aplicación que pueda ajustar de manera eficiente el asesino de la memoria como esta.
Conozco al menos uno más que tiene esta habilidad (con la misma limitación). Se llama AutoKiller Memory Optimizer . Desafortunadamente eso no da una solución a mi problema. Esperaré un poco más por si alguien sabe algo que tú y yo no sabemos, antes de aceptar tu respuesta. Por ahora, como puede ver, lo he votado a favor.

La única solución que he encontrado y parece estar funcionando con más de un servicio, es asegurarme de dejar abiertas en el administrador de tareas las aplicaciones que no quiero que se cierren.

Este no es un enfoque a prueba de balas, pero funciona durante horas o incluso días (al menos en mi caso) y es mucho más rápido que cambiar manualmente la prioridad de OOM (solo para descubrir que OOM cambia después de un tiempo por el propio sistema).

La solución ideal sería una aplicación que monitoree la OOM de los servicios especificados por el usuario y se asegure de que se mantenga en ciertos niveles, pero no he encontrado ninguna que pueda hacer eso hasta ahora.