2012-02-15 32 views
0

我有一個小應用程序,這個應用程序有7個活動,基本上6個是圖像佈局,一個是MapActivity,5個佈局之一有一個內部類ArrayList,每次我使用我的應用程序的內存增長到50MB,70MB,111MB ...我試圖打電話垃圾收集器,但我沒有收到預期的結果。Android應用程序的高內存使用率

public class GC 
{  
    public static final Runtime runtime = Runtime.getRuntime(); 

    public static void Free() 
    { 
     runtime.gc(); 
    } 
} 

回答

1

看一看這裏: Avoid memory leaks on Android

  1. 確保你正確地關閉您的其他活動(this.finish)。
  2. 您需要刪除圖像的回調,否則會泄漏內存。

    private void unbindDrawables(View view) { 
    if (view.getBackground() != null) { 
        view.getBackground().setCallback(null); 
    } 
    if (view instanceof ViewGroup) { 
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { 
         unbindDrawables(((ViewGroup) view).getChildAt(i)); 
        } 
        ((ViewGroup) view).removeAllViews(); 
    } 
    

把它與視圖的根(即unbindDrawables(findViewById(R.id.xml_layout_root));

+0

我實現您的解決方案,但我仍然獲得了內存我瘋了,!因爲我不知道如何清理android應用程序上的內存。 – Gandarez 2012-02-15 21:51:07

相關問題