же кто подскажет как из Class<? extends ViewModel> вызвать метод onCleared (не разобрался с кастом дженериков)?
onCleared должен вызываться системой. Если не вызывается, значит есть проблема в коде.
Ну, у меня сингл-активити с графом фрагментов. Синглтоновская фабрика. И после логаута хочется почистить данные в vm фрагментов, потому что выживают.
А почему просто очистить бэкстек не катит?
Не подумал. Пойду кофе пить, видимо пора. Спасибо!
Вы перегружаете простые вещи сложными словами. Есть активити и есть фрагменты со своими vm. К чьему жизненному циклу привязаны vm? Фрагмента или активити? Как осуществляется переход между фрагментами? Nav component?
Сингл-активити приложение. Через даггер заинжектил синглтоновскую кастомную фабрику моделек. Фрагменты обращаются к провайдеру за моделькой через активити (т.е. жизненный цикл завязан на нем). Это обеспечивает промежуточное хранение данный в модельке, вне зависимости от ЖЦ фрагмента. Но вот при выходе из учетке нужно как то почистить данные в модельках.
Тогда тут два варианта: или перезапускать задачу или создать синглетон который будет эмиттить изменение состояния авторизован/неавторизован, а vm должны подписаться на это изменение.
Обсуждают сегодня