xml泄漏内存中的Android位图?

时间:2012-05-06 18:24:08

标签: android memory-leaks resources bitmap drawable

以下是我想要的一些新手记忆管理观察 听取经验丰富的意见。

似乎在xml中设置android:backgound =“@ drawable / xyz” 布局导致我的应用程序内存丢失。各自的活动保持不变 堆叠直到我收到OOM错误。如果我旋转,尤其如此 设备方向。

但是,如果我使用setBackgoundResource()加载相同的资源,然后清除 回调并将背景引用设置为null,没有任何泄漏。

即onCreate()

中的第一个
    mMainLayout.setBackgroundResource(R.drawable.background_general_android);

然后在onDestroy()

mMainLayout.getBackground().setCallback(null);
mMainLayout.setBackgroundDrawable(null);

这大概是正确的,还是我遗漏了一些必要的东西?

1 个答案:

答案 0 :(得分:1)

只有在例如静态缓存中保留drawable的副本时才会发生这种情况。您可能还会泄漏您的活动并将drawable设置为null,只需将问题隐藏一段时间。您应该使用MAT之类的工具来检查堆的内容并找出正在发生的事情。