nw_path_monitor_t / NWPathMonitor: необходима ли отмена в фоновом режиме/возобновление на переднем плане?
Я использую пакет Network.framework в iOS для отслеживания изменений в сети. Я использую Objective C, но тот же базовый код, что и Swift NWPathMonitor. С приведенным ниже кодом все работает отлично, но любопытно, есть ли какие-либо соображения по долгосрочному жизненному циклу, которые я упускаю.
Должен ли я отменить монитор пути, когда приложение переходит в фоновый режим, и перезапустить его, когда оно выходит на передний план? Или можно оставить его в фоновом режиме на неопределенный период времени, и он не будет потреблять дополнительные ресурсы и возобновит работу после повторного включения?
Я не жду обновлений в фоновом режиме, я просто хочу убедиться, что они:
- Не потребляет значительных дополнительных ресурсов или увеличивает вероятность удаления приложения из памяти.
- Он получит обновление, когда приложение возобновит работу на переднем плане, обнаруживая все обновления, которые оно могло пропустить в фоновом режиме.
self.monitor = nw_path_monitor_create();
nw_path_monitor_set_queue(
self.monitor,
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0));
__weak CMNetworkMonitor *weakSelf = self;
nw_path_monitor_set_update_handler(
self.monitor, ^(nw_path_t _Nonnull path) {
weakSelf.currentPath = path;
dispatch_semaphore_signal(weakSelf.readReadySemaphore);
});
nw_path_monitor_start(self.monitor);