0

预期的 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);
}
4

0 回答 0