标签: java android memory bitmap
我有一个Android游戏,其中包含菜单活动,然后是游戏的另一个活动,它创建了一个SurfaceView和Thread来处理画布绘图和游戏逻辑。退出游戏并重新启动时,或者如果打开和关闭键盘(从而重新启动活动),游戏内存不足,通常是在加载位图时:
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
当游戏改变状态时,如何将所有图像保存在内存中而不再加载它们,或者如何在游戏重新启动时将它们从内存中释放并让它们重新加载?
答案 0 :(得分:1)
你有没有在你的清单中设置android:launchMode?如果您没有并且未明确处理返回onResume / onStart中的原始活动,您可能会同时运行多个游戏活动副本。
您可以查看launchMode here
答案 1 :(得分:0)
您目前如何加载和发布图片?
找到此resource
“在将图像传递给之前,尽量不要将图像加载到字节数组中 BitmapFactory而是直接将InputStream传递给 BitmapFactory。图像的大小有限制。“
BitmapFactory
InputStream
答案 2 :(得分:0)
您的背景可能正在泄露。 This应该有所帮助。