Lo primero es lo primero
Es posible que tengas algunos conceptos erróneos sobre el funcionamiento de Android y sobre lo que realmente ocurre cuando un servicio se está ejecutando o una aplicación está en segundo plano. Vea también: ¿Realmente necesito instalar un gestor de tareas?
La mayoría de las aplicaciones (por ejemplo, las que se inician manualmente) tienen su Actividad pasar a un segundo plano cuando se cambia a otra aplicación o a la pantalla de inicio. Las actividades consumen algo de memoria, por lo que puedes volver a la aplicación y continuar donde lo dejaste. Por lo general, las actividades no pueden ejecutar cálculos en segundo plano, por lo que no se utiliza la CPU ni la batería para ellas. Si lo que te preocupa es la duración de la batería o el rendimiento de la CPU, no tienes que preocuparte por estas aplicaciones. Tampoco tienes que preocuparte por la memoria; Android matará automáticamente la aplicación y liberará la memoria si el sistema se está agotando.
Si la aplicación en segundo plano está ejecutando un servicio, puede ser una historia diferente. Los servicios bien diseñados pasan la mayor parte de su tiempo durmiendo, despertándose para la comprobación ocasional (nuevas notificaciones de redes sociales, por ejemplo). Sin embargo, los servicios mal diseñados pueden ejecutarse más a menudo o realizar operaciones de sincronización que no quieres, afectando a la vida de la batería y a tu uso de datos. Si tienes un servicio mal diseñado, puedes probar una de las siguientes soluciones.
Soluciones
Si estás seguro de que quieres hacer que esta aplicación se detenga a toda costa, puedes probar estos métodos.
Desinstalar
Cuando una aplicación hace algo que no te gusta, ya sea que se ejecute en segundo plano al iniciarse o cualquier otra cosa, tu primera opción es desinstalarla. Problema resuelto. Puedes eliminar las aplicaciones del sistema si tienes Root, más fácilmente con Copia de seguridad en titanio pero tenga cuidado de eliminar sólo el bloatware operador y no las aplicaciones críticas del sistema.
Sin embargo, si quieres poder utilizar esa aplicación, esta no es una opción: sigue leyendo.
Ponga al desarrollador en contacto con él
Algunos de los mayores demonios que vienen con Android son servicios que se ejecutan en segundo plano sin razón alguna o cuando un simple control de intervalos con el AlarmManager de Android sería suficiente. Hay que matarlos a todos con fuego, y no ignorándolos. Todo lo que no implique un arreglo por parte del desarrollador es sólo un hackeo que dará lugar a otros efectos secundarios negativos. Si te pones en contacto con el desarrollador para exponerle tu problema, ellos pueden arreglar la aplicación y tú puedes seguir utilizándola con normalidad. Eso es una victoria para todos los implicados.
Eliminación manual de aplicaciones
En primer lugar, ten en cuenta que muchas aplicaciones se cierran por completo si sales de ellas en lugar de utilizar el botón de inicio.
Si estás ejecutando Ice Cream Sandwich o Jelly Bean, puedes ir a Ajustes, pulsar en Aplicaciones y cerrar manualmente la aplicación pasando por encima de las aplicaciones en ejecución. También puedes pulsar el botón de Aplicaciones recientes y deslizarlas fuera de la pantalla para cerrarlas. En versiones más antiguas de Android puede haber un gestor de tareas integrado añadido por el fabricante para lograr lo mismo, o puedes descargar una aplicación de gestión de tareas para hacerlo. Para los servicios, mira Settings -> Applications -> Services
.
ADVERTENCIA: Haga no utilice los eliminadores automáticos de tareas Los eliminadores automáticos de tareas se ejecutan en segundo plano (exactamente lo que no quieres) y matan las aplicaciones cada vez que se inician. La mayoría de las veces esto empeora las cosas, porque las aplicaciones suelen consumir más recursos cuando se inician que cuando están inactivas. Los servicios que se ejecutan automáticamente y son reiniciados por el sistema serán eliminados una y otra vez, gastando tu batería. Del mismo modo, las aplicaciones que reciben eventos del sistema conocidos como Intents (como la cobertura de la red y los cambios de conectividad) se matarán cada vez que se inicien para recibir un evento. Nada bueno puede salir de ello.
Una posible excepción son las tareas automáticas que se ejecutan sólo cuando usted, el usuario, realiza una acción específica. En esencia, lo que hacen es facilitarte la gestión manual de las tareas. Una aplicación como Tasker o Llama se puede utilizar para finalizar las actividades cuando se cambia de aplicación, por ejemplo, asegurando que no se queden en segundo plano. Instrucciones para Llama:
Crear un nuevo Event
. Añade la condición llamada Active App
, y elegir el estado App stopped or in background
. Elige la aplicación en la que quieres centrarte. A continuación, añada un Action
. Seleccione Kill Application (root privileges)
y vuelva a seleccionar su aplicación.
Ahora, cada vez que salgas de la aplicación, Llama la matará.
Edición de Autostarts e Intentos
Como se ha mencionado anteriormente, algunas aplicaciones pueden iniciarse cuando reciben Intents (eventos del sistema). Al utilizar una aplicación como Permisos denegados puedes alterar los permisos que las aplicaciones pueden solicitar, lo que a su vez limita los eventos que pueden recibir. O puede utilizar una aplicación como Autostarts (aplicación de pago) para editar específicamente qué intenciones se enviarán a qué aplicaciones. Para ambas soluciones, necesitarás acceso Root.
Otras opciones:
(El código fuente de Autostarts también está disponible aquí: https://github.com/miracle2k/Android-autostarts )
ADVERTENCIA: Esto puede hacer que las aplicaciones dejen de funcionar o inhiban Se busca funcionalidad. Proceda con precaución, especialmente con las aplicaciones críticas del sistema.
Congelación de aplicaciones
Puedes utilizar una aplicación como Copia de seguridad en titanio o Cuarentena de aplicaciones para completar la congelación de las aplicaciones para que no puedan ejecutarse en absoluto. Si quieres usarlas tienes que descongelarlas primero.
ADVERTENCIA: Haga no ¡hacer esto con las aplicaciones críticas del sistema! Su dispositivo podría no arrancar.
Poner las aplicaciones en hibernación
Greenify (requiere Android 4.0+ y privilegio de Root) utilizan un enfoque diferente llamado "Hibernación", de la tradicional "Congelación".
Puedes hibernar de forma segura cualquier aplicación que no sea del sistema y que no quieras que se ejecute de forma sigilosa (a través de servicios persistentes, receptores de difusión, alarmas, etc.), lo que equivale efectivamente a "congelar", pero manteniendo todas sus entradas (icono del lanzador, objetivo de compartición, etc.) y totalmente funcional cuando la ejecutes explícitamente, sin necesidad de descongelarla primero.
ADVERTENCIA: Haga no hibernatizar las aplicaciones de despertador, mensajería instantánea y otras aplicaciones cuya funcionalidad básica depende de un mecanismo en segundo plano (temporizador, eventos del sistema, "push", etc.) para funcionar.
El resultado final
Android está diseñado para ocuparse de la gestión de las aplicaciones por ti. En todos los casos, salvo en los más extremos, no deberías tener que preocuparte por ello. Cuando haya un problema, te aconsejamos que optes por la solución más sencilla: la desinstalación. Todas las demás soluciones son hacks alrededor de lo que Android está diseñado para hacer. Quizás algún día Android tenga soporte oficial para la gestión de servicios pero, hasta entonces, ten cuidado.
0 votos
Esta es una Wiki comunitaria; todo el mundo es libre de añadir y corregir información en la respuesta :)
0 votos
Meta-debate relacionado: meta.Android.stackexchange.com/questions/1119/
0 votos
Relacionado con esto: Desactivar el autoarranque en el arranque .
0 votos
En Android 11 en un dispositivo TCL A3, pude desbloquear una aplicación de la siguiente manera: 1. Ir a la pantalla de inicio. 2. Pulsa en el icono del sistema más a la derecha en la parte inferior derecha (ver tareas). 3. Desliza si es necesario para encontrar la tarea que no se cierra. 4. En la parte superior derecha de la pantalla reducida, deberías ver un pequeño icono de bloqueo. Tócalo una vez para desbloquear (el icono se vacía), tócalo de nuevo para bloquear (el icono se llena). Tu toque tiene que dar exactamente en el icono, es decir, en su esquina superior izquierda.