完全销毁片段实例

时间:2018-07-03 14:09:45

标签: android android-fragments kotlin

我正在使用自定义Backstack来管理“应用程序”屏幕。基本上,自定义BackStack是一个列表。问题在于此方法会导致内存泄漏。

此方法检查单元格中是否已经有片段:

    private fun addToBackStack(fragment: Fragment){
    try {
        if (backStack.isNotEmpty() && backStack[backStackPosition] != null)
            fragmentUtils.removeFragment(backStack[backStackPosition]!!)
    } catch (e: IndexOutOfBoundsException) {
        e.printStackTrace()
    }
    backStack.add(backStackPosition, fragment)
}

这是我尝试将其删除的方法:

fun removeFragment(fragment: Fragment?){
    fm.beginTransaction().remove(fragment).commit()
}

但是,根据LeakCanary的说法,我仍然存在内存泄漏。我在做错什么,或者如何完全破坏一个片段?

0 个答案:

没有答案