Odyssey icon indicating copy to clipboard operation
Odyssey copied to clipboard

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

Open puritanin opened this issue 3 years ago • 2 comments

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

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

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

puritanin avatar Dec 28 '22 07:12 puritanin

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

mironoff2007 avatar Jan 06 '23 11:01 mironoff2007

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

puritanin avatar Jan 06 '23 12:01 puritanin