En Ice Cream Sandwich (ICS), el sistema operativo clasifica su aplicación y cada categoría tiene su propio umbral en el que el sistema operativo utiliza para determinar qué aplicación se cierra primero cuando se queda sin memoria.
¿Alguno de ustedes se molestó, digamos que abrió un temporizador para ejecutarse en segundo plano para medir el tiempo transcurrido de algo, luego abrió algunas aplicaciones más y regresó a su temporizador solo para ver que se restableció o cerró? Quiero decir, en serio, es realmente insoportablemente molesto.
¿Hay alguna manera de obligar a una aplicación a permanecer ejecutándose en segundo plano sin importar qué, incluso cuando el sistema operativo se queda sin memoria?
4.0-ice-cream-sandwich
ram
samsung-galaxy-s-3
supertonsky
fuente
fuente
Respuestas:
La respuesta aceptada resultó incorrecta u obsoleta. El módulo "Configuración de la aplicación" para la aplicación Xposed le permite especificar en función de cada aplicación para evitar que las aplicaciones sean asesinadas o liberadas:
http://repo.xposed.info/module/de.robv.android.xposed.installer
http://repo.xposed.info/module/de.robv.android.xposed.mods.appsettings
Por supuesto, se debe tener cuidado responsable cuando se juega con aplicaciones que cambian el comportamiento de bajo nivel.
fuente
Respuesta simple: No. Android siempre usa OOM (fuera de memoria) priorizando para liberar memoria no utilizada. Puede cambiar las prioridades de las aplicaciones (al menos hasta que se reinicie) con algunos administradores de tareas, pero incluso si la memoria se agota, las aplicaciones en segundo plano comienzan a ser eliminadas.
Piense en este escenario: ha descargado una aplicación mal codificada que se ejecuta en el arranque, provoca un desbordamiento del búfer y acapara toda su memoria. Normalmente, esta aplicación se elimina, pero si está configurada para permanecer abierta, efectivamente bloquea su teléfono hasta que se reinicie, y después de eso comienza una y otra vez, etc.
Algunos temporizadores usan servicios con altas prioridades para evitar este problema, pero si inicia suficientes aplicaciones de alto rendimiento que acaparan recursos mientras el temporizador está en segundo plano, eventualmente se matará.
fuente
Integer.MAX_VALUE
. ¿Por qué crees que las cosas están limitadas deInteger.MAX_VALUE
todos modos?No. Sin embargo, me vienen a la mente dos métodos para aliviar el problema, pero ambos solo pueden ser implementados por el desarrollador: el primero es mostrar una notificación, Android dará a las aplicaciones que hacen esto una prioridad más alta que otras. El segundo es guardar el tiempo de inicio para que cuando el temporizador se reinicie, no se restablezca.
fuente
onSaveInstanceState
yonRestoreInstanceState
para proteger el estado de la aplicación, incluida la información del temporizador. No es necesario ejecutar en primer plano. Incluso si es una alarma que podría usarAlarmManager
para asegurarse de que se ejecute más tarde. La única razón por la que se debe utilizar el primer plano es: 1. Tiene alguna actividad real en primer plano, como reproducir música o mostrar un video. 2. Desea mantener abierta una conexión de datos (por ejemplo, IMAP IDLE (push)).1er método: - Si crea Sticky Thread en el programa, sí, puede mantener su programa forzosamente en ejecución. Sin embargo, recuerde que el usuario en el modo de configuración avanzada puede detener las aplicaciones en ejecución en segundo plano. Sin embargo, si escribe un hilo adhesivo de manera que comience en cualquier evento dado, entonces esto se puede lograr.
2do método: SI el usuario no es Android rooteado y quiere ejecutar una aplicación en segundo plano. use el script SL4 en segundo plano desde la aplicación. use una secuencia de comandos que le haga verificaciones de antecedentes y programas y escriba el front-end para mostrar algo más.
Por ejemplo: en la mayoría de los motores de juego esto está construido Se conectan a los servidores a pesar de que el usuario apagó la aplicación. La razón por la cual el motor crea múltiples scripts en el teléfono que se verifica aleatoriamente en cualquier evento en particular y que TRIGGER se usa para ejecutar su aplicación continuamente en el fondo del primer plano.
*** Perdón por el corrector ortográfico de TYPO .. no disponible. Espero que consigas lo que pretendías conseguir.
fuente
A veces hay una opción para bloquear la aplicación. Esto evita matar o detener esa aplicación en el teléfono.
La opción de bloqueo no está disponible en el sistema operativo en sí , puede ser útil usar algunas aplicaciones de terceros como GO Task Manager , etc.
fuente