Pregunta

He creado una clase de aplicación propia.

Intento depurarlo y el código se detiene en Application.Oncreate () pero no se detiene en OnlowMemory.

Para probar el escenario, abro muchas otras aplicaciones de alta memoria.

Lo que veo es que la sesión de depuración terminó (en Eclipse) y algunas de mis variables estáticas convertidas en NULL, indica que el proceso ha terminado.

La depuración no solo no se detuvo en el punto de interrupción del método, sino que he puesto una línea log.e (...) y no la veo también.

¿Alguna idea de por qué el método no fue invocado?

Gracias.

¿Fue útil?

Solución

No creo que haya ninguna garantía de que este método se llame.

Desde el documentos:

Si bien el punto exacto en el que se llamará esto no se define, generalmente sucederá en el momento en que se haya matado todo el proceso de fondo, es decir, antes de llegar al punto de matar procesos de alojamiento y una interfaz de usuario en primer plano que nos gustaría evitar matar.

Dado que el punto al que se llama no está definido, podría elegir nunca llamarlo.

En general, Android es libre de matar su aplicación cuando lo desee, siempre que sea en segundo plano. Solo debe confiar en los métodos en el ciclo de vida (como OnPause, Onstop, OnDestroy) que indican específicamente que se les garantiza que se les llame para hacer cualquier limpieza necesaria.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top