¿Cómo evito que las aplicaciones sean asesinadas mientras duermo?


11

Tengo un Droid 2. Tengo un juego largo de uso intensivo de recursos (almas espectrales) que me gustaría dejar en funcionamiento mientras no esté usando mi teléfono. Si presiono el botón "Inicio" de Android para volver a la pantalla de inicio y luego reinicio el juego, estará justo donde lo dejé. Lo mismo si presiono el botón de encendido para dormir, y luego inmediatamente enciendo el teléfono, desbloqueo y reinicio el juego.

Si lo dejo por una cantidad de tiempo (unas pocas horas), cuando regrese y lance el juego, comenzará de nuevo como si nunca se hubiera ejecutado. Mientras tanto, el teléfono no se ha utilizado para nada, aunque la sincronización está activada.

Mi pregunta es doble: ¿cómo puedo obtener más información sobre qué aplicaciones se eliminan cuándo y por qué, y cómo puedo configurarla para permitir que esta aplicación continúe ejecutándose? No necesito que HAGA nada en el fondo, solo quiero que esté allí cuando regrese.

Estoy familiarizado con el concepto de Android borrando memoria, ya que es necesario y no necesita un asesino de tareas, pero quiero que no mate ESTA tarea a menos que realmente salga de ella.


¿Asumo que no tienes acceso al código real?
Nanne

Correcto, estas son aplicaciones de código cerrado compradas en la tienda de aplicaciones.
Jason Viers

Respuestas:


2

Estoy bastante seguro de que no es una opción en el diseño predeterminado de Android. Nunca he visto personalmente una aplicación para tales cosas porque la mayoría de las personas desean que los programas se cierren para mantener la velocidad del teléfono. Es el sistema Android que está cerrando los programas no utilizados. El creador de la aplicación tendría que diseñar un servicio para mantenerlo funcionando en segundo plano o posible como un cálculo o audio siempre activo para que el sistema piense que el programa está haciendo algo. Eso consumiría tu batería.


Mientras que su primera y tercera oración son absolutamente correctas, las otras no lo son.
Michael

2

Sugerencia: use Tasker para deshabilitar el tiempo de espera de la pantalla para su aplicación. Esto puede evitar que pase al fondo.


Voy a echar un vistazo y probarlo, gracias! Tomaré nota de cualquier éxito o fracaso.
Jason Viers

Puedo confirmar que cambiar el tiempo de espera de la pantalla en Tasker NO evitará que la aplicación sea eliminada. Gracias por la sugerencia, sin embargo.
Jason Viers

1
Espera, ¿esto no impedirá que la pantalla se apague? ¿Así desperdiciando la batería?
Michael

2

A la primera parte de tu pregunta;

¿Cómo puedo obtener más información sobre qué aplicaciones se eliminan cuándo y por qué?

El SDK de Android tiene un resumen rápido en la memoria de Android http://developer.android.com/guide/topics/fundamentals.html

Por defecto, cada aplicación se ejecuta en su propio proceso de Linux. Android inicia el proceso cuando cualquiera de los componentes de la aplicación necesita ser ejecutado, luego cierra el proceso cuando ya no es necesario o cuando el sistema debe recuperar la memoria para otras aplicaciones.

Así que, efectivamente, Android puede resumirse como programas de eliminación cuando determina que no lo está utilizando (hice clic en Salir en la aplicación), o cuando se queda sin recursos. Por ejemplo, si tiene 512 MB de RAM y 10 gratis y ejecuta una aplicación que necesita 12, intentará determinar la aplicación menos utilizada de la que pueda obtener 12.

Suele hacerlo bastante bien (al menos en mi experiencia). Es posible que puedas volver a casa desde tu juego y hacer un par de cosas, pero en la tercera cosa desalojará el juego. Tenga en cuenta cuán intensivos son los juegos en particular, por lo que es probable que mate esa aplicación más pronto que tarde.

Ahora, la razón por la que desaparece con el tiempo es que es probable que tenga procesos de sincronización que intentan comenzar y competir por los recursos. Las páginas de memoria de las aplicaciones se han visto afectadas con poca frecuencia en este punto, por lo que es justo para cualquier reclamo de memoria que el sistema operativo considere necesario.

A tu segunda pregunta;

¿Cómo puedo configurarlo para permitir que esta aplicación continúe ejecutándose?

No uso un asesino de tareas, pero estoy bastante seguro de que los buenos (parece que ATK es el líder https://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) tienen una excepción lista. Es posible incluir en la lista blanca el juego que desea y poner en la lista negra los otros procesos.

Tampoco estoy familiarizado con este juego, así que no estoy seguro de qué habilidades de guardado automático y tal tiene. Espero haber sido de alguna ayuda.


1

¿Cómo obtener más información sobre qué aplicaciones se eliminan y por qué?

Puede conectar su teléfono a adb ; y luego encienda logcat ; guardando la salida en el archivo.
En el archivo de registro tendrá toneladas de información; buscando el nombre de tu aplicación; puedes averiguar cuándo es asesinado.

¿Qué puede hacer para evitar que el sistema Android lo detenga?
No lo sé; espero que la respuesta de randy funcione.
Sin embargo; Me pondría en contacto con el desarrollador y le diría el problema, porque él / ella debería tener el tiempo más fácil para solucionarlo


Estaba a punto de mencionar la solución logcat. Solo quiero agregar que también has buscado el ActivityManager (es un "asesino de tareas" interno de los androides). No puedes evitar que Android ejecute la aplicación de asesinatos. La idea de Android es que si el proceso de una aplicación se elimina por completo, la aplicación debería poder restaurar su estado anterior. Por lo tanto, los desarrolladores de la aplicación deben asegurarse de no iniciar el juego desde el principio.
Flujo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.