You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Bloc构造器调用super构造函数后执行的代码块是什么?有什么作用?

代码本质说明

这段放在super调用之后的大括号内容是Dart类构造函数的执行体,是InternetCubit实例完成基础初始化后,立刻执行的业务逻辑。

具体作用拆解

  • 核心功能是启动网络状态变化的持续监听:这里依赖传入的Connectivity工具实例,订阅它的onConnectivityChanged流,这个流会在设备网络连接状态发生变更时,自动下发最新的网络类型值。
  • 把订阅返回的StreamSubscription实例存入类成员变量,是为了后续Cubit销毁时可以调用cancel()方法取消监听,避免流一直持有实例引用导致内存泄漏,标准写法还需要补充Cubit的close重写逻辑,在销毁前主动取消订阅,参考代码如下:
@override
Future<void> close() {
  connectivityStreamSubscription.cancel();
  return super.close();
}
  • 监听回调里的逻辑是对网络状态做判断,根据当前网络类型(WiFi/移动网络/无网络),调用对应的方法发射Cubit状态,上层UI只要监听InternetCubit的状态,就能自动响应网络变化做对应的交互处理,比如断网时弹出离线提示、切换到移动网络时提醒用户注意流量消耗等。
  • 配合构造时传入的初始状态InternetLoading,可以实现Cubit实例化后先展示加载态,第一次拿到网络状态后自动更新为对应网络状态的交互效果。

内容的提问来源于stack exchange,提问作者IcyHerrscher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:36:03