Пишу на игру на андроид с libgdx в Android Studio. Игровое поле состоит из объектов, представленных текстурами. Так как объектов создаётся много, текстуры делаю статичным полем в классе, во избежание долгой загрузки, и, собственно, лишней работы. Игра отлично работает, но при сворачивании её на телефоне(выхода из приложения) и потом возврата в него происходит странный баг. Вместо текстур всё закрашивается чёрным цветом, если, конечно, они не представлены private полем. То есть, в момент возврата в приложение - всё создаётся заново(Game, Screen-ы, Actor-ы и т.д.). Вот только статичные текстуры, похоже, не видят в этом надобности.
Подскажите, почему так происходит?
Как выйти из ситуации?
Решение найдено, оказывается андроид не обнуляет статичные переменные. Решил проблему тем что вынес загрузку всех тексур в отдельный класс и в нём, в методе dispose() обнуляю переменные.
It is a bad idea to hold all your texture is static array in static class. It is very hard to manage memory and control which texture will be removed by GC when you minimize your game or in other similar cases.
I recommend you to use AssetManager for loading and disposing your resources. You can find lots of useful information about AssetManager and resources management here Managing your assets (https://github.com/libgdx/libgdx/wiki/Managing-you...
Решение найдено, оказывается андроид не обнуляет статичные переменные. Решил проблему тем что вынес загрузку всех тексур в отдельный класс и в нём, в методе dispose() обнуляю переменные.