这是我用来检查internet连通性的代码
import 'dart:async';
import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:flutter/material.dart';
class CheckingConnectivity {
late InternetConnectionChecker internetConnectionChecker;
late StreamSubscription<InternetConnectionStatus> connectionStatusListener;
bool hasInternetConnection = false;
var onStatusChange = InternetConnectionChecker().onStatusChange;
//Checking Internet connection
internetChecker(BuildContext context) async {
var connectionChanging = onStatusChange.listen((event) async {
hasInternetConnection = event == InternetConnectionStatus.connected;
if(hasInternetConnection == true) {
showSnackBar(context, "Connected");
} else if(hasInternetConnection == false) {
showSnackBar(context, "Disconnected");
}
});
}
showSnackBar(BuildContext context, String message) {
final snackBar = SnackBar(content: Text(message,
style: TextStyle(color: Colors.white, backgroundColor: Colors.grey),));
ScaffoldMessenger.of(context).showSnackBar(snackBar);
}
}
当应用程序启动时,它显示连接,即使我已经连接到互联网。我想要它显示连接只有当我重新连接到互联网。非常感谢。我很欣赏
因此,当查看库的代码时,我看到它们最初总是发送状态更新。一个简单的解决方法是设置一个计数器变量,每次接收到状态更改事件时,该变量都会增加。如果计数器变量有其默认值,则您知道您收到了初始事件。