в navigation component, то фрагменты будут все добавляться в back stack?
Ну да, в этом и смысл. Кастомное поведение также возможно.
Блин, ну в этом и проблема. Коррутины во вьюмодели не могут сдохнуть, ибо скоуп вью модели живёт пока жива вьюмодель ,а она жива пока жив фрагмент
Как это не могут? А для кого придумали job?
Но мне теперь самому ручками нужно следить за жц фрагмента чтоб джобы поубивать
Для чего вам именно смерть корутин нужна?
Отписка от Flow
Так Flow - Cold Stream, он работает только по collect
Блин, ShareFlow
Ну так коллект всегда есть пока есть вьюмодель
Ну так это же практически эквивалент LiveData, не полностью, конечно. Там же lifecycle aware можно настроить.
А как настроить?
Врать не буду, сам лично с SharedFlow не работал, но на медиуме полно мануалов
Погляди в сторону KTX который добавляет lifecycleScope
Lifecyclescope нужен для представления
А ты что? Про код во вью модели?
Ага)
onCleared() перекрой и в нем делай cancel на скоупе нужном, отпишешься так
))))) если б все так просто было. Oncleared не сработает когда я иду вверх по навигации в navigation component ибо фрагмент добавляется в бэкстек
Если всё ещё не решили проблему, то можете кратко и понятно описать что у вас и что должно быть?
Но есть нюанс. Вью модель специально сделана как отделенная от ЖЦ сущность. Если ты там хочешь подвязываться на циклы и события интерфейса -- что-то не так
Да с чего это не так? Она работает как и должна. Destroy вызвался у фрагмента - вью модель сдохла. Но когда фрагмент добавили в бэкстек дестрой не вызовется и тут уже нужно завязываться на onStop чтоб сделать отписку от источников во вьюмодели.в этом она кар раз завязана на жц фрагмента
Просто буду завязываться на onStop чтоб сделать отписку от источников
Зачем onStop()? Разве не подойдёт onDestroyView()?
Ну или так) тоже верно
И кстати, зачем вообще от чего-то отписываться? viewLifecycleOwner же есть
Отписывать надо интерфейс. А то тебя послушать, надо вью модель от репо отписать, а репо от базы, а базу отписать от еще чего
Раньше ты как в rx java делал отписку?
Не ходи вокруг, говори прямо
👍
Обсуждают сегодня