в моем приложении у меня есть MainActivity, для которого требуется доступ к ViewModel. Я ввожу ViewModel с помощью DaggerHilt и аннотации @ViewModelInject. Кроме того, у меня есть два фрагмента в Activity, которым требуется доступ к одной и той же ViewModel, чтобы передавать данные друг другу с помощью наблюдаемых.
Проблема: я обнаружил, что всякий раз, когда один из моих фрагментов проходит onDestroy()
, его ViewModel уничтожается. Это заставляет меня думать, что Activity и Fragments не используют одну и ту же ViewModel.
Мой вопрос: кто-нибудь знает, должны ли мы использовать аннотации области видимости для ViewModels в Dagger Hilt? Я не видел, чтобы об этом говорилось в документации Hilt или в руководствах / руководствах для разработчиков Android. Я предполагал, что они делают синглтоны уровня приложения ViewModels, что имело бы смысл.
Если нам действительно нужно использовать аннотации области видимости для ViewModels, знает ли кто-нибудь, какой уровень подходит?
Это мой код модели просмотра:
class MainActivityViewModel @ViewModelInject constructor(
private val repo: Repo,
private val rxSharedPrefsRepo: RxSharedPrefsRepo,
private val resourcesRepo: ResourcesRepo,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {