2015-10-08 2 views
1

Я использую libGDX и распоряжаюсь своими ресурсами, когда они мне больше не нужны, чтобы освободить RAM. Нужно ли вручную утилизировать ресурсы, когда игра заканчивается? Или это делается автоматически с помощью Android (или libGDX)?Dispose ресурсы libGDX по игре закрыты?

ответ

1

Да, вы должны, или родная память, связанная со всеми этими объектами будут все утечки. Закрытие операции (которая является хостом для игры Libgdx) в Android не закрывает все приложение, и поэтому память не будет восстановлена ​​ОС, и вы потеряете все свои ссылки на объекты, которые могут быть удалены.

0

Правда состоит в том, что некоторые из объекта должны быть утилизированы вручную - из-за ссылки на них, например:

  • Pixmap
  • Texture
  • Bitmap

и многие другие you will find here ,

Чтобы упростить управление вашими активами, вы должны использовать AssetManager. Способ, как использовать is desribed here, но общая картина:

  1. Создание AssetManager экземпляра
  2. Загрузка активов в AssetManager экземпляр
  3. Использование ресурсов получать их от упомянутого объекта
  4. Располагая AssetManager экземпляр в конце срока службы приложения

Пример кода:

AssetManager assetManager = new AssetManager(); 

    assetManager.load("data/mytexture.png", Texture.class); 

    assetManager.finishLoading(); //loading resources to asset manager is asynchrous! you can also use .update() method - find it in the reference 

    ... 

    Texture tex = assetManager.get("data/mytexture.png", Texture.class); //use the asset manager to obtain texture 

    ... 

    assetManager.clear(); //disposing asset manager with all its resources - you can also use .dispose() method 
Смежные вопросы