Почему я должен использовать viewmodelproviders для viewmodels?
Чтобы правильно вызвать viewModel.onCleared()
callback в нужное время с помощью ComponentActivity
.
(и дляубедитесь, что он создан только один раз для заданного ViewModelStoreOwner).
Почему я просто не могу добавить пользовательскую одноэлементную аннотацию к моей модели представления, а затем внедрить эту модель представления в класс фрагмента?
Поскольку вы не получите viewModel.onCleared()
Обратный вызов вызывается правильно в нужное время с помощью ComponentActivity
.
Есть ли недостатки в случае синглтонной аннотации? Я вижу только преимущества:
То, что вы не получаете viewModel.onCleared()
.
Также, если у вас есть одноэлементный вариант, то ViewModel не умрет вместе с завершающей обработкойАктивность и оставайтесь в живых даже при обратной навигации (что, вероятно, не предназначено).
при таком подходе мне не нужно копировать / вставлять тонны кода.
Вы используете Kotlin. Используйте функции расширения.