背景:
一个Activity里强引用持有了四个Fragment实例,当时为了方便快速切换这四个fragment。但是在Activity的onDestory方法回调里没有给这四个Fragment实例赋值为空,导致内存泄露。
val mFragments: Array<BaseFragment<*, *>> = arrayOf(
AFragment(),
BFragment(),
CFragment()
)
解决方案
在Activity的onDestory时候把Fragment数组清空
val mFragments: Array<BaseFragment<*, *>?> = arrayOf(
AFragment(),
BFragment(),
CFragment()
)
override fun onDestroy() {
super.onDestroy()
mFragments.fill(null) //清空Fragment数组
}