Я использую пользовательский 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. Что я делаю не так или как полностью уничтожить фрагмент?