В моем приложении Flutter у меня есть 2 страницы: Page1 и Page2. На странице Page 1 у меня есть кнопка, которая переводит пользователя на страницу Page2 через эту строку кода:
Navigator.pushNamed(
context,
'/page2',
arguments: someParam,
),
Page2 использует Scaffold и AppBar, через которые пользователь может перейти обратно на страницу 1.
На странице 2 я получаю переданный аргумент с:
ModalRoute.of(context).settings.arguments
Кроме того, Page2 также выполняет некоторую задачу, которая имеет смысл, только если пользователь действительно находится на Page2.
Я заметил, что когда я нахожусь на Page2 и нажимаю стрелка назад вызывает метод build () как Page1, так и Page2.
Почему это проблема (для меня)? Приложение также получает уведомления pu sh, и когда пользователь открывает их, он / она направляется на страницу Page1. Однако, если пользователь был на странице 2, поместите приложение в фоновом режиме, а затем откройте уведомление, благодаря эффекту, описанному выше, оно также запускает эту фоновую задачу, что крайне негативно влияет на работу пользователя.
Как я могу запретить формированию Page2 build () при переходе от нее? Или, если это невозможно или плохая идея, как я могу определить в методе build () Page2, что текущий вызов исходит от навигации?
Спасибо и с уважением!