【发布时间】:2021-02-13 18:12:18
【问题描述】:
- 我为连接创建了一个枚举:
enum ConnectivityStatus{
Wifi,
Cellular,
Offline
}
- 然后我创建一个服务来检查连接:
import 'dart:async';
import 'package:Zabatnee/activities_app/enum/connectivity_status.dart';
import 'package:connectivity/connectivity.dart';
class ConnectivityService{
StreamController<ConnectivityStatus> connectionStatusController = StreamController<ConnectivityStatus>();
ConnectivityService(){
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
var connectionStatus = _getStatusFromResult(result);
connectionStatusController.add(connectionStatus);
});
}
ConnectivityStatus _getStatusFromResult(ConnectivityResult result) {
switch (result) {
case ConnectivityResult.mobile:
return ConnectivityStatus.Cellular;
case ConnectivityResult.wifi:
return ConnectivityStatus.Wifi;
case ConnectivityResult.none:
return ConnectivityStatus.Offline;
default:
return ConnectivityStatus.Offline;
}
}
}
- 我需要检查我创建的所有屏幕中的连接状态。我可以对所有屏幕执行一次吗,或者我必须单独检查每个屏幕的连接性。
【问题讨论】:
标签: flutter dart widget provider connectivity