以下是一些新手内存管理观察,我想听听经验丰富的意见。
似乎在 xml 布局中设置 android:backgound="@drawable/xyz" 会导致我的应用程序出现内存丢失。相应的活动不断堆积,直到我收到 OOM 错误。如果我旋转设备方向,尤其如此。
但是,如果我使用 setBackgoundResource() 加载相同的资源,然后清除回调并将背景引用设置为 null,则不会有任何泄漏。
也就是先在 onCreate()
mMainLayout.setBackgroundResource(R.drawable.background_general_android);
然后在 onDestroy()
mMainLayout.getBackground().setCallback(null);
mMainLayout.setBackgroundDrawable(null);
这是大致正确的,还是我错过了一些重要的东西?