Я прочитал в документации Android LiveData, что:
Вы можете зарегистрировать наблюдателя без связанного объекта LifecycleOwner с помощью метода Observer (Observer). В этом случае наблюдатель считается всегда активным и поэтому всегда уведомляется об изменениях. Вы можете удалить этих наблюдателей, вызвав метод removeObserver (Observer).
Я создаю приложение, используя шаблон архитектуры MVVM, используя ViewModel и объявляю LiveDatas внутри моего ViewModel класс. В моей модели viewModel я установил observeForever
на LiveData:
val password by lazy {
MutableLiveData<String>()
}
init {
initObservable()
}
private fun initObservable() {
password.observeForever {
...
}
}
Насколько я понял из документации, я должен удалять наблюдателя каждый раз, когда представление, которое создает экземпляр ViewModel (с предыдущим кодом), было уничтожено, верно? Но не следует ли уничтожать наблюдателей после уничтожения представления (поскольку экземпляр ViewModel был создан в представлении и также будет уничтожен)?
ViewModel
экземпляр? Почемуpassword
наблюдается изнутри самогоViewModel
? - person Pawel   schedule 29.04.2019