Intereting Posts
Примеры макета Android, соответствующие рекомендациям «Метрики и сетки» Как обрабатывать исключения MonoDroid во всех случаях и предотвращать крах приложения Разрешения на размещение в Marshmallow FINE и COARSE Hybrid vs Native Mobile app Как отображать статическую карту google на андроиде? Изменить шрифт для подсказки editText Как скрыть вкладку в макете вкладки Android? Авария Firebase: как программно загружать файл сопоставления? Эквивалент window.close в Phonegap с помощью InAppBrowser ActionBar – пользовательский вид с центрированным ImageView, Action Items по сторонам Почему размер apk для Android отличается при построении из окон и mac Почему proguard обрабатывает AndroidManifest.xml Android: как указывать маркеры, разрывы строк на текст в текстовом виде Зачем писать приложение, если веб-сервер будет делать? Android двухсторонняя привязка с типом Integer приводит к тому, что привязка данных не существует

Libgdx app.exit () на Android не закрывает приложение

В моем приложении для Android, разработанном с помощью libGDX, я использую Gdx.app.exit() когда пользователь пытается выйти из игры. Это закрывает игру, но когда пользователь перезапускает приложение, все Textures скремблируются (за пределами использования приложения). Я заметил, что если я закрою приложение из диспетчера задач, он перезапустится должным образом.

Почему это происходит?

Solutions Collecting From Web of "Libgdx app.exit () на Android не закрывает приложение"

Вы заново обнаружили несоответствие между временем жизни объектов Java (привязанным к жизненному циклу процесса приложения) и временем жизни объектов текстуры (привязанным к жизни контекста OpenGL, привязанного к видимости Activity).

В приложении «exit» только активность завершена, а Android кэширует процесс в фоновом режиме. Когда вы «перезапускаете» приложение, Android только начинает новую активность в том же процессе. В этом случае Activity находит действительный объект Java Texture, но базовые байты, которые он «указывает» в контексте OpenGL, исчезли (поскольку контекст OpenGL недействителен, когда активность больше не видна).

Исправление заключается в повторной загрузке текстур при создании активности. Вы должны убедиться, что все объекты, содержащие текстуры (и объекты, содержащие объекты, содержащие текстуры и т. Д.), Привязаны к жизненному циклу активности. Как правило, это означает, что вы избегаете статических переменных (которые являются частью жизненного цикла приложения), но вы можете перепрыгнуть через обручи, чтобы сделать недействительными и повторно инициализировать глобальные переменные, если хотите.