2010-05-21 1 views
1

У меня есть игра для Android, в которой есть действие для меню, а затем еще одно действие для игры, которое создает SurfaceView и Thread для обработки холста и игровая логика. При выходе из игры и запустить его снова слишком много или если вы открывать и закрывать клавиатуру (таким образом перезапуск активности), игра запускается из памяти, как правило, при загрузке растрового изображения:В моей игре Android заканчивается память, когда она закрыта и открыта, и пару раз

java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

Как я могу сохранить все мои изображения в памяти, не загружая их снова, когда игра изменится, или как я могу освободить их из памяти и позволить перезагружать их при перезапуске игры?

ответ

0

Как вы загружаете и отпускаете изображения в настоящее время?

Нашел resource

«Старайтесь не загружать изображения в массив байтов перед передачей его в BitmapFactory а передать InputStream непосредственно к BitmapFactory. Существует ограничение на размер изображения «.

1

у вас установлен андроид: launchMode в вашем манифесте? Если вы этого не сделали, и вы явно не обращались с возвратом к исходному действию в onResume/onStart, вы, вероятно, получите одновременно несколько копий своей игровой активности.

Вы можете посмотреть на различные варианты для launchMode here

+0

Я пробовал каждую комбинацию launchMode для двух моих действий, но проблема все еще происходит. – cstack

0

Ваш контекст может быть утечка. This должен помочь.