1. Когда подписываетесь на обновления LiveData во фрагменте, передавайте в метод
observe не сам фрагмент (this), а viewLifecycleOwner. Это предотвратит создание новых Observer'ов при пересоздании view фрагмента, если сам фрагмент сохраняется во время смены конфигурации.2. Загружайте данные для экрана не в методе
onCreate/onCreateView, а в конструкторе ViewModel. Благодаря этому данные не будут загружаться заново каждый раз при смене конфигурации.3. Если вы передаете ссылку на ViewModel объекту, который живет дольше, обнуляйте её в методе
onCleared, чтобы Garbage Collector смог её уничтожить.4. Убедитесь, что View из ViewModel получают LiveData, а не на MutableLiveData. View не должны изменять данные в LiveData.
5. Передавайте во ViewModelProvider не сами зависимости, а их провайдеры (
class MyViewModelFactory(private val repository: Provider<MyRepository>)). Тогда зависимости не будут создаваться каждый раз, когда ViewModelFactory пересоздается при смене конфигурации.https://proandroiddev.com/5-common-mistakes-when-using-architecture-components-403e9899f4cb
#разработка #architecturecomponents