5 votos

¿Cómo puedo evitar que las aplicaciones se ejecuten en segundo plano?

Posible duplicado:
¿Cómo puedo detener la ejecución de aplicaciones y servicios?

Ya existe una pregunta similar a ésta, pero la mía tiene un alcance más reducido y no se aborda en la otra pregunta:

Consideremos el caso de una aplicación que cumple los siguientes criterios:

  1. Tomemos un gestor de archivos como ejemplo, pero podría ser una aplicación diferente con la misma facilidad. La aplicación específica no es importante para esta pregunta.
  2. Esta aplicación no tiene ninguna necesidad legítima de ejecutarse en segundo plano. Sólo necesito la gestión de archivos cuando estoy utilizando activamente la aplicación. (En caso de que mi ejemplo específico resulte tener una necesidad, supongamos por el bien de la discusión que en realidad no la tiene).
  3. El hecho de que se ejecute en segundo plano se confirma con un monitor del sistema .
  4. Aunque creo que no tiene ninguna necesidad legítima de ejecutarse en segundo plano y no quiero que lo haga, yo no quiere desinstalarlo.

¿Puedo evitar que dicha aplicación se ejecute en segundo plano?

Aplicación práctica

Para ilustrar la necesidad de esta pregunta específica, y por qué no estoy nombrando aplicaciones específicas, considere lo que tenía en mente cuando escribí esta pregunta:

Me gustaría revisar mis aplicaciones y decidir cuáles quiero ejecutar como servicios. Algunas deberían ejecutarse sin restricciones. Algunas no deberían ejecutarse nunca. Algunas sólo deberían ejecutarse cuando se cumpla algún conjunto de condiciones. Usando la información de una respuesta a esta pregunta, podría implementar esto - posiblemente por alguna secuencia de comandos personalizada, posiblemente usando Tasker, o posiblemente usando otro enfoque. Tratar de manejar esto a través de la configuración de cada aplicación individual sería casi imposible.

Por supuesto, si lo que pido en esta pregunta no es posible, entonces esta aplicación de la misma no es viable.

Notas basadas en los comentarios y respuestas

  • La razón por la que quiero hacer esto es irrelevante. Tal vez sea para ahorrar batería. Tal vez sea otra razón. Esta pregunta es sobre cómo no por qué . Una advertencia de que una determinada solución podría tener efectos secundarios negativos es útil si se presenta junto con esa solución. Decir "es imposible" es legítimo si es cierto. Decir "No lo hagas" no es útil.
  • Esto no es un duplicado del pregunta al que he enlazado en mi primer párrafo. Esa pregunta era sobre el ahorro de memoria. Esta no lo es. Aquella decía, básicamente, "no lo intentes". Esa no es una respuesta válida a esta pregunta.
  • Las aplicaciones concretas no son importantes, por eso he sido impreciso. He dado una pista sobre un ejemplo específico que tenía en mente, pero estoy buscando una respuesta general.
  • Una solución también debe evitar que una aplicación se reinicie automáticamente; de lo contrario, no es una gran solución.
  • Varias personas han afirmado que se trata de un duplicado. Permítanme explicar más claramente por qué no lo es:
    1. Esta pregunta se refiere a cómo evitar que una aplicación se ejecute en segundo plano, lo que incluye impedir que se reinicie si se mata.
    2. Las respuestas hasta ahora se han dividido en algunas categorías generales:
      1. No deberías intentarlo, porque hacerlo es innecesario. No discuto este punto en este momento, pero "No deberías intentarlo" es muy diferente de "No puedes". Lógicamente, está abordando una pregunta diferente, a saber: "¿Debo intentar matar las aplicaciones que no quiero ejecutar?"
      2. Usa el método X para matar la aplicación. Desafortunadamente, cuando probé dicho método, no impidió que la aplicación se reiniciara, tal como otros predijeron. Por lo tanto, no es realmente una respuesta.
      3. Pongan al desarrollador/es un error. Esta es la más útil de las soluciones sugeridas, pero mi pregunta buscaba una solución genérica.
    3. Las otras preguntas de las que se ha dicho que esta pregunta es un duplicado cubren el mismo terreno que en mi punto anterior. Por lo tanto, mi pregunta específica tiene no a pesar de las numerosas afirmaciones en sentido contrario. Sin embargo, parece que la respuesta es un simple "No se puede".
    4. Hay una pregunta relacionada en meta. En Respuesta de Jeff Atwood En parte, dice: "En general, basta con enlazar con la otra pregunta y explicar por qué no satisface sus necesidades". Todo el hilo es a propósito de esta pregunta. Lo he hecho desde el principio, y he dado más detalles en ediciones posteriores.

5voto

Flow Puntos 14132

Tl;dr

Está bien si la aplicación en segundo plano es sólo una actividad. Las actividades que sólo consumen algo de memoria no suelen ser capaces de ejecutar cálculos en segundo plano. Por lo tanto, no se utiliza la CPU ni la batería para ellas. Pero si la aplicación en segundo plano está ejecutando un servicio:

Ponga al desarrollador en contacto con él

¡Pingue al desarrollador! Uno de los mayores demonios que vienen con Android son los servicios que se ejecutan en segundo plano sin razón alguna o cuando un simple control de intervalo con el AlarmManager de Android sería suficiente. Necesitamos mátalos a todos con fuego y no ignorándolas. Todo lo que no implique un arreglo por parte del desarrollador no es más que un sucio hackeo que, por experiencia, dará lugar a otros efectos secundarios negativos.

Actividades que se ejecutan en segundo plano

Las aplicaciones puras de Android y sus actividades suelen permanecer en la memoria durante un tiempo después de haber sido desactivadas. Pero en algún momento pueden ser borradas por el ActivityManager de Android si hay una presión de memoria en curso. Este es el comportamiento previsto, nosotros (los usuarios) lo queremos así y funciona bien en las versiones recientes de Android. Por lo tanto, no hay nada malo si ves que tu gestor de archivos se queda colgado en la memoria.

Servicios que se ejecutan en segundo plano

Pero Si se trata de un servicio que ve que se ejecuta eternamente sin razón aparente (y sin la posibilidad de desactivar el servicio en algún lugar de la configuración de las aplicaciones), debería contactar con el promotor . En el 99% de los casos, no hay razón para desperdiciar su preciosa memoria haciendo esto. Android proporciona con intents y el ya mencionado AlarmManager suficientes facilidades para evitar servicios de larga duración. A veces los desarrolladores responden con "pero Google Maps también lo hace" . Yo sostengo que esto nunca es una excusa para señalar a los demás, además de que no proporciona una razón válida para ejecutar un servicio de fondo.

2voto

bigbadonk420 Puntos 1698

¿Puedo evitar que dicha aplicación se ejecute en segundo plano?

Te niegas a aceptar las respuestas que recibes porque crees que no encajan, pero sí lo hacen. Tu pregunta es cómo detener las aplicaciones automáticamente en lugar de dejarlas funcionar en segundo plano. La respuesta que obtienes es que en la mayoría de los casos esto es innecesario y pasa completamente por alto la forma en que Android está creado para lidiar con las aplicaciones en segundo plano.

Hay un montón de aplicaciones disponibles para matar las aplicaciones en segundo plano, también puede deslizarlas o puede utilizar comandos cortos como "pulsación larga hacia atrás" en ciertas roms para cerrar el proceso. Sin embargo, es muy raro que se espere esto del usuario; una aplicación que se comporta mal debe ser reportada antes que nada, en lugar de ser trabajada.

Si una aplicación no tiene "ninguna necesidad legítima de ejecutarse en segundo plano", pero sigue utilizando recursos del sistema (por favor, asegúrese de que esto es realmente cierto), entonces esa aplicación está mal diseñada. No es un fallo del sistema operativo Android.

Dicho esto, hay muchas maneras de cerrar las aplicaciones manualmente. Hacerlo automáticamente no tiene sentido, la mayoría de las aplicaciones se comportan bien.

0voto

Steve Obbayi Puntos 1499

Utilice Llama una aplicación que puede automatizar muchas cosas, incluyendo matar una aplicación cuando se va a una aplicación diferente. Se requiere Root para matar aplicaciones.

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á.

Tenga en cuenta que la aplicación puede tener otras formas de iniciarse, como iniciarse al arrancar o recibir un texto o cualquier otra Intent que maneja. Para evitar que maneje esos Intents Utiliza la aplicación Permisos denegados o utilizar una rom personalizada como CyanogenMod que tiene la capacidad incorporada. Estas aplicaciones pueden revocar los permisos de cualquier aplicación (de nuevo, se requiere Root).

Edición: Parece que la versión gratuita de Permissions Denied ya no está disponible. Todavía puedo acceder a la página de google play (porque la tengo instalada), pero ha desaparecido para los nuevos usuarios. El versión de pago sigue ahí, sin embargo.

0voto

user1457668 Puntos 11

Si está ejecutando Ice Cream Sandwich o Jellybean, puede ir a la configuración de aplicaciones y cerrar manualmente la aplicación por la pestaña de las aplicaciones en ejecución. También puede pulsar el botón de aplicaciones recientes y deslizarlas fuera de la pantalla. Sin embargo, este método no se puede utilizar para todos los procesos en segundo plano.

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