2016-07-25 53 views
1

在我的Android游戏中,我有一些活动,其中一个有OpenGL视图。 问题是每次在活动之间切换时,使用的堆内存不能释放,所以例如在某些电话的活动之间切换10-20次之后,应用程序崩溃并关闭。android-Heap Size Increased per activity

我有这样的结构代码的每个活动之间的切换:

 Intent it = new Intent(WorldChose.this, MainMenu.class); 
     startActivity(it); 
     overridePendingTransition(R.anim.from_middle, R.anim.to_middle); 
     finish(); 

我寻觅了很多,大家都说Android的应该释放未使用的内存本身我不应该担心,但似乎我的情况不是这样做的!

我该怎么办?

+1

http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html –

+1

发布您可能拥有的任何静态变量,以及将活动链接在一起的内容。例如,如果Activity_A指向Activity_B的实例,则在两者都被视为空闲之前,A或B都不能被收集。 – Bonatti

+0

可能是内存泄漏,请使用内存分析工具(如MAT)来查找泄漏。 –

回答

3

如果最终没有释放内存,那么你可能有泄漏。我会寻找在操作系统,异步任务或线程中注册的对象,或者在活动已经引用回活动后死亡的其他任何东西。