AlexGladkov / Odyssey

Odyssey it's a declarative multiplatform navigation library for Multiplatform Compose

Home Page:https://youtube.com/c/MobileDeveloper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

onScreenRemove не вызывается (backToScreen)

puritanin opened this issue · comments

Момент ухода экрана с навигации можно отслеживать через onScreenRemove.

Но вызов происходит через LaunchedEffect внутри AnimatedHost, а это работает через рекомпозицию.
Цепочка прямых возвратов, как это делает backToScreen - вызовет onScreenRemove только у последнего целевого экрана,
промежуточные останутся без внимания.

onScreenRemove функция очень важная, хотелось бы гарантированной работы для каждого экрана.

@puritanin , можно описание как повторить проблему, пожалуйста

У меня это обнаружилось в связке с hilt, когда через onScreenRemove происходит уничтожение VM (VM продолжала жить).
Самый простой способ - добавить логгирование, соорудить цепочку экранов и прыгнуть с последнего на первый через backToScreen.