ViewModel хранит ссылку на TextView, чтобы сразу выставить текст
class ProfileViewModel : ViewModel() {
var nameView: TextView? = null
fun load() = viewModelScope.launch {
nameView?.text = repository.profile().name
}
}
Фрагмент в onViewCreated делает viewModel.nameView = binding.name. После пары поворотов LeakCanary сообщает об утечке Activity. Почему?
- ViewModel живёт дольше View и держит старый экран
- viewModelScope не отменяется при повороте
- TextView нельзя менять из корутины
- LeakCanary ложно срабатывает на ViewModel
