我有一个安卓游戏,有一个菜单的活动,然后游戏的另一个活动,创建了一个SurfaceView和线程来处理画布绘制和游戏逻辑。当您退出游戏并再次启动过多时,或者如果您打开并关闭键盘(从而重新启动活动),游戏将耗尽内存,通常是在加载位图时:
java.lang.OutOfMemoryError: bitmap size exceeds VM budget当游戏状态改变时,我如何将所有图像保存在内存中而不重新加载它们,或者如何从内存中释放它们,并在游戏重新启动时重新加载它们?
发布于 2010-05-22 07:43:40
你在清单中设置android:launchMode了吗?如果您没有这样做,并且没有显式地处理返回到onResume/onStart中的原始活动,那么很可能会同时运行游戏活动的多个副本。
您可以查看launchMode here的各种选项
发布于 2010-05-22 04:15:08
您目前是如何加载和发布镜像的?
找到此resource
“在将图像传递给BitmapFactory之前,尽量不要将其加载到字节数组中,而是将InputStream直接传递给BitmapFactory。图像的大小是有限制的。”
发布于 2010-05-22 09:07:25
您的上下文可能正在泄露。This应该能帮上忙。
https://stackoverflow.com/questions/2885170
复制相似问题