Блок pathUpdateHandler NWPathMonitor вызывается при переходе от фона приложения к переднему плану

Ожидаемый NWPathMonitor pathUpdateHandler будет вызываться только при изменении сетевой активности (например, сотовая связь-> Wi-Fi или Wi-Fi1-> Wi-Fi2 или Wi-Fi-> нет сети и т. Д.).

Я наблюдаю, что блок pathUpdateHandler вызывается, даже когда приложение работает в фоновом режиме, скажем, 30 секунд и выходит на передний план. Этого не ожидалось. Также при изменении сети блок 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);
}

0 ответов

Другие вопросы по тегам