per*_*rza 5 resources android memory-leaks bitmap drawable
这里有一些新手记忆管理观察,我希望听到有经验的意见.
似乎在xml布局中设置android:backgound ="@ drawable/xyz"会导致我的应用程序内存丢失.各个活动一直在堆积,直到我收到OOM错误.如果我旋转设备方向,则尤其如此.
但是,如果我使用setBackgoundResource()加载相同的资源,然后清除回调并将后台引用设置为null,则无任何泄漏.
也就是说,首先在onCreate()
mMainLayout.setBackgroundResource(R.drawable.background_general_android);
Run Code Online (Sandbox Code Playgroud)
然后在onDestroy()
mMainLayout.getBackground().setCallback(null);
mMainLayout.setBackgroundDrawable(null);
Run Code Online (Sandbox Code Playgroud)
这是大致正确的,还是我错过了必不可少的东西?
例如,只有当您在静态缓存中保留可绘制对象的副本时,才会发生这种情况。您也可能会泄漏您的活动,并将可绘制对象设置为 null 只是将问题隐藏得更久一点。您应该使用 MAT 这样的工具来检查堆的内容并找出发生了什么。
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |