Изучение
Runtime, жизненный цикл и восстановление
Одна Session на Flutter View, восстановление состояния и обновление общего Graph без потери активных Entry.
Runtime, жизненный цикл и восстановление
Создавайте одну NavigationSession для одного Flutter View и закрывайте её вместе с этим представлением. Несколько окон могут использовать общий неизменяемый Graph через NavigationRuntime, но каждая Session сохраняет собственные стек, историю и сведения о текущем Route.
Восстанавливаемому Route нужен двунаправленный URI-кодек. NavigationRestorationPolicy.sessionOnly предназначен только для локальных значений процесса, которые нельзя восстановить после перезапуска. В обычном Destination лучше хранить стабильный ID, а актуальную сущность получать через прикладные сервисы.
NavigationRuntime.updateGraph транзакционно изменяет общее определение. Для Entry, потерявших Route, вызывающий код выбирает стратегию:
- отклонить обновление;
- удалить потерявшие определение Entry;
- перенести каждый Entry в совместимый типизированный Target.
Миграция сохраняет жизненный цикл Entry и его Ticket, поэтому тип результата нового Route обязан совпадать.
Отдельные изоляты Flutter Engine не могут совместно использовать объекты. NavigationSessionBridge задаёт сериализуемую границу конфигурации; транспорт, аутентификация, порядок и повторные попытки остаются ответственностью приложения.