预期的 NWPathMonitor 的 pathUpdateHandler 只会在网络活动发生变化时被调用(例如,蜂窝->wifi 或 wifi1->wifi2 或 wifi->无网络等...)。
我观察到的是,即使应用程序在后台运行 30 秒并进入前台,也会调用“pathUpdateHandler”块。这不是预期的。此外,当网络更改时,'pathUpdateHandler' 块会被多次调用。
这是预期的行为吗?或者这种行为有解决方法吗?我的设备是 iOS 13.7 这是我的代码片段
-(void) startMonitor {
self.pathMonitor = nw_path_monitor_create();
nw_path_monitor_set_update_handler(self.pathMonitor, ^(nw_path_t _Nonnull path) {
DDLogVerbose(@"Network path changed %d", nw_path_get_status(path));
if (nw_path_uses_interface_type(path, nw_interface_type_wifi)) {
DDLogVerbose(@"Network path user interface type WiFi");
} else if (nw_path_uses_interface_type(path, nw_interface_type_cellular)) {
DDLogVerbose(@"Network path user interface type Cellular");
} else if (nw_path_uses_interface_type(path, nw_interface_type_wired)) {
DDLogVerbose(@"Network path user interface type Wired");
} else if (nw_path_uses_interface_type(path, nw_interface_type_loopback)) {
DDLogVerbose(@"Network path user interface type Loopback");
} else if (nw_path_uses_interface_type(path, nw_interface_type_other)) {
DDLogVerbose(@"Network path user interface type Other");
}
});
nw_path_monitor_start(self.pathMonitor);
}