Несколько слушателей blo c на разных маршрутах с одинаковой функциональностью - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть класс ConnectionBlo c blo c, который проверяет соединение inte rnet и выдает состояние Online / Offline. Если приложение отключено, я хотел бы отобразить диалоговое окно, в котором говорится, что приложение не может работать без подключения. Я отображаю диалог, используя BlocListener. Мне бы хотелось, чтобы этот прослушиватель ConnectionState присутствовал на каждой странице / экране моего приложения. Из «материальных» и навигационных соображений мне нужно поместить его под MaterialApp (слушатель отображает текст в диалоге и переходит к диалогу). Поэтому мне нужно разместить по одному слушателю на каждой странице.

Однако, насколько я понимаю, кажется, что код внутри слушателя вызывается для каждой страницы (скажем, страницы A и страницы B), даже если страница не активный (не виден на экране). Правильно ли мое понимание? Так что в моем случае появилось бы несколько диалогов, потому что был запущен код для обоих слушателей на страницах A и B.

Я что-то не так делаю? Это плохой дизайн? Неестественно, когда слушатели запускаются на страницах, которые не видны - может быть, мне следует явно проверить это? Я мог бы переместить обычного слушателя над материальным приложением, однако затем мне нужно было бы создать отдельный навигатор над слушателем (без опыта), а также некоторый виджет материала.

Любые мысли очень ценятся

Спасибо!

...