2016-07-25 55 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

如果最終沒有釋放內存,那麼你可能有泄漏。我會尋找在操作系統,異步任務或線程中註冊的對象,或者在活動已經引用回活動後死亡的其他任何東西。