Flutter监听网络变化

写完了监听网络变化的demo,发现其实代码很短,但是涉及到的知识点却是很多:比如Stream,异步生成器,yield,async* 和async的区别,Future等关于Dart的基础知识。在这里暂且为了博文不跑题不会做多说明(有些我还没研究呢,写了怕打脸),后面会专门写关于Stream的博客。不了解童鞋可以参考博文后面的资料。闲言少叙书归正传:

监听网络变化需要引入connectivity库,具体在pubspec.yaml种做如下配置:

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 connectivity = Connectivity();
 ConnectivityResult previousResult = await connectivity.checkConnectivity();

或者:

  connectivity.checkConnectivity().then((ConnectivityResult connectivityResult) {
      print("current connect type  =="+connectivityResult.toString())

猜你喜欢

转载自blog.csdn.net/chunqiuwei/article/details/89457829