Flutter 退出应用程序时未调用颤振提供程序dispose方法

Flutter 退出应用程序时未调用颤振提供程序dispose方法,flutter,flutter-provider,Flutter,Flutter Provider,我正在使用提供程序在我的应用程序中包装MaterialApp,但关闭应用程序时未调用提供程序dispose方法 我的代码如下所示: MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: Provider<PageBloc>( builder: (context) => PageBloc(FlutterSerialServ

我正在使用提供程序在我的应用程序中包装MaterialApp,但关闭应用程序时未调用提供程序dispose方法

我的代码如下所示:

MaterialApp(
  title: 'Flutter Demo',
  theme: ThemeData(
    primarySwatch: Colors.blue,
  ),
  home: Provider<PageBloc>(
    builder: (context) => PageBloc(FlutterSerialService()),
    child: Consumer<PageBloc>(
      builder: (context, bloc, _) => MainPage(bloc: bloc),
    ),
    dispose: (context, bloc) {
      print("Dispose..");
      bloc.dispose();
    },
  ),
);
MaterialApp(
标题:“颤振演示”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:提供商(
生成器:(上下文)=>PageBloc(SerialService()),
儿童:消费者(
生成器:(上下文,bloc,)=>MainPage(bloc:bloc),
),
处置:(上下文,集团){
打印(“处置”);
集团处置();
},
),
);
来自的文档(我猜这就是您使用的提供商!?):

如果从窗口小部件树中删除了提供程序,则实例化的MyComplexClass将被释放


因此,据我所知,dispose回调仅在您更改小部件树时触发。退出应用程序时,小部件树仍保持不变。你在关闭应用程序时是否检查了它是否被调用?

谢谢你的回答,关闭应用程序似乎没有帮助。我的问题是,我需要处理主页区时,它处置,但我不能得到任何迹象表明这一点。我想我可以使用provider dispose回调。当页面被释放时,您在需要您处理它的bloc中到底在做什么。从我的角度来看,这看起来不是一个好的设计…该集团初始化蓝牙通信与一些设备。我想关闭并清洁连接和蒸汽。您可以在my repo中查看整个代码:查看此页面:当使用有状态小部件时,您可以使用dispose挂钩。您可以将其用于您的用例。stative dispose回调也不会调用!起初,我的小部件是无状态的,但后来我改为有状态以使用dispose。看起来,识别应用程序正在退出并不是一件简单的事情。