Android应用程序的高内存使用率

时间:2012-02-15 01:12:43

标签: java android

我有一个小应用程序,这个应用程序有七个活动,基本上有6个是带有图像的布局,一个是MapActivity,在5个布局中,一个有内部类的ArrayList,每次我使用我的应用程序,内存增长到50mb,70mb,111mb ......我试着打电话给垃圾收集器但我没有收到预期的结果。

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

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

1 个答案:

答案 0 :(得分: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();
    }
    
  3. 使用视图的根调用它(即unbindDrawables(findViewById(R.id.xml_layout_root));