在我的Android应用程序中,每次启动我的应用程序时,它都会因OutOfMemory异常而崩溃

时间:2010-08-24 14:24:06

标签: android memory crash

我有一个Android应用程序,在onCreate()方法中,预加载了很多图形。

当我在HTC Aria上测试我的应用程序并启动它时,它运行正常。但是,如果我按后退按钮退出我的应用程序,然后再次启动应用程序,它会崩溃并出现OutOfMemoryError:位图大小超过VM预算。如果我然后第三次启动应用程序(它崩溃后)它启动正常。然后,如果我关闭并重新启动它,它会因内存不足而再次崩溃。如果我继续努力,它将永远延续这种每隔一段时间崩溃的模式。

我检查了什么生命周期方法被调用,onStop()和onDestroy()都在我退出应用程序时被调用,但我感觉有些东西还没有被清理,而且“崩溃” “当我第二次尝试启动它时,应用程序就会以某种方式释放内存。

有关可能发生的事情或如何解决这个问题的任何想法?如果您需要我发布更多信息,请告诉我。谢谢!

的信息:
我的应用程序相当简单,只有1个活动可以播放一些帧动画。

3 个答案:

答案 0 :(得分:2)

也许您不必要地持有Context引用?查看Avoiding memory leaks以获取一些提示,以及Attacking memory problems

答案 1 :(得分:0)

听起来活动生命周期中的某些内容并不完全正确。你确定你的每一次开始都被覆盖了吗? http://developer.android.com/reference/android/app/Activity.html

您有onStop,但您有onDestroy吗?你可能错过了其中一个你需要的东西。

答案 2 :(得分:0)

您可以在这个问题的许多答案中找到一些有用的信息: Strange out of memory issue while loading an image to a Bitmap object

另外,我的第二篇“避免内存泄漏”博文。特别是如果您可以通过方向更改触发相同的问题。在创建显示对象时使用“this”上下文是泄漏Activity上下文的一种偷偷摸摸的方式。在我自己的应用程序中,我设法泄漏了整个上下文链,并且在进行方向更改时会很快耗尽内存。