Libgdx app.exit () en Android no se cierra la aplicación

En mi aplicación Android desarrollada con libGDX utilizo Gdx.app.exit() cuando el usuario intenta salir del juego. Esto cierra el juego, pero cuando el usuario reinicia la aplicación todas las Textures son codificadas (más allá del punto de usar la aplicación). Me di cuenta de que si forzar cerrar la aplicación de un administrador de tareas, a continuación, se reiniciará correctamente.

¿Por qué sucede?

Ha redescubierto el desajuste entre la vida útil de los objetos Java (vinculados a la vida útil del proceso de aplicación) y la duración de los objetos de textura (vinculados a la vida del contexto de OpenGL que está vinculada a la visibilidad de la actividad).

En la "salida" de la aplicación, solo se sale de la actividad y Android almacena en caché el proceso en segundo plano. Cuando reinicies la aplicación Android solo inicia una nueva Actividad en el mismo proceso. En este caso, la actividad está encontrando un objeto de textura Java válido, pero los bytes subyacentes a los que "apunta" en el contexto de OpenGL han desaparecido (ya que el contexto OpenGL se invalida cuando la actividad ya no es visible).

La solución consiste en volver a cargar texturas en la creación de actividad. Debe asegurarse de que todos los objetos que contienen texturas (y objetos que contienen objetos que contienen texturas, etc.) están vinculados al ciclo de vida de la actividad. Generalmente esto significa evitar variables estáticas (que son parte del ciclo de vida de la aplicación), pero puede saltar a través de aros para invalidar y reinicializar globales si lo desea.

  • (Java LibGDX) ¿Cómo puedo cambiar el tamaño de mis texturas en LibGDX?
  • ¿Cómo obtener una "pantalla de carga" con libgdx?
  • ¿Cómo mostrar el texto vectorizado usando libgdx?
  • Cómo cargar imágenes como fondo en LibGDx?
  • LibGDX - Texto sobre textura en tile / tilemaps
  • Problema de renderizado de malla libgdx
  • No se puede guardar ni cargar entero con las preferencias
  • LibGDX setOrigin y setPosition no funcionan como se esperaba?
  • Android NullPointerException en $ Proxy0.equals
  • Android Intent y startActivity en Libgdx (clase Non Activity o AndroidApplication)
  • Creando una cuerda lisa con un motor de la física del androide
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.