写完了监听网络变化的demo,发现其实代码很短,但是涉及到的知识点却是很多:比如Stream,异步生成器,yield,async* 和async的区别,Future等关于Dart的基础知识。在这里暂且为了博文不跑题不会做多说明(有些我还没研究呢,写了怕打脸),后面会专门写关于Stream的博客。不了解童鞋可以参考博文后面的资料。闲言少叙书归正传:
监听网络变化需要引入connectivity库,具体在pubspec.yaml种做如下配置,(目前最新的网络变化的库是connectivity_plus,版本为2.2.0):
dev_dependencies:
flutter_test:
sdk: flutter
connectivity: 0.3.2
在对应的Dart文件种添加import:
import 'package:connectivity/connectivity.dart';
网络监听的结果最终封装成ConnectivityResult :
enum ConnectivityResult { wifi, mobile, none }
可以看出connectivity对网络状态的监听分成了三种:wifi链接,移动信号链接,以及无网络三种状态。
且获取当前网络状态的代码也很简单,根据Connectivity 对象的checkConnectivity方法获取当前网络状态:
Connectivity connectivit