我有ConnectionBloc bloc类,该类检查Internet连接并产生Online / Offline状态。如果应用程序离线,我想显示一个对话框,指出没有连接该应用程序将无法运行。我使用BlocListener显示对话框。我希望此ConnectionState侦听器出现在我应用的每个页面/屏幕上。由于“材料”和导航原因,我需要将其放置在MaterialApp下(侦听器在对话框中显示文本并导航到对话框)。因此,我需要在每个页面上放置一个侦听器。
但是,据我了解,即使页面未处于活动状态(在屏幕上不可见),似乎每个页面(例如页面A和页面B)都将调用侦听器内的代码。我的理解正确吗?因此,在我的情况下会弹出多个对话框,因为触发了页面A和B上的两个侦听器的代码。
我做错什么了吗?这是一个不好的设计吗?在不可见的页面上触发侦听器是不自然的-也许我应该明确地检查一下?我可以将常用的侦听器移到materialApp上方,但是然后我必须在侦听器上方创建一些单独的导航器(对此没有经验)以及一些物料小部件。
任何想法都很感激
谢谢!