Это может быть утечка памяти в данном сценарии:
Допустим, вы нажимаете на представление, и этот метод viewModel.showList(v)
вызывается вместе с ссылкой на представление, переданной ему.
Теперь представьте, что вы Глобальная переменная globalViewRef
в ViewModel
, в которой хранится ссылка на это представление, например:
class MyViewModel: ViewModel(){
lateinit var globalViewRef: View
fun showList(v: View){
globalViewRef = v // Storing view reference globally for future methods/purpose etc.
}
}
И ваш ViewModel
распределяется между фрагментами с активностью контекст, в таком случае, если изменение конфигурации произойдет, ваша viewModel
утечка объект глобального обзора из-за изменения контекста.
Итак, все принять во внимание:
Никогда не храните view/context
глобально в ViewModel
классе (используйте его локально внутри метода только при необходимости) .
Если что-то вам не нужно хранить глобально, переопределите onCleared()
и очистите ссылку, так как это последний вызов ViewModel
, когда он собирается уничтожить состояние (Учтите это, когда ViewModel
не передается в контексте действия) .
Если вы рассмотрели обе вещи, то в вашем случае нет утечки памяти, которую я могу найти.