Мне нужно разработать корпоративное приложение, которое отслеживает сетевой трафик. В основном это определяет, был ли пользователь в wi-fi или сотовых данных и сэкономил количество байтов, которые были отправлены и получены в течение определенного периода времени. Я видел приложение в AppStore, которое выполняет именно эту работу. Обнаружение wi-fi или сотовых данных довольно просто с использованием примера Reachability, предоставленного Apple. Моя проблема заключается в том, чтобы следить за байтами, отправленными и полученными, когда приложение находится в фоновом режиме.
Поскольку это корпоративное приложение, я использовал UIBackgroundModes "voip", чтобы избежать прекращения приложения. Я также установил метод setKeepAliveTimeout, и я могу видеть журналы каждые 10 минут, НО только через 10 секунд после запуска метода. Я имею в виду, setKeepAliveTimeout приносит мое приложение для запуска таймера в течение 10 секунд каждые 1 минуты.
Я думаю, что это не проблема в фоновом режиме, это лучшее решение для моей проблемы.
Я буду благодарен за любые комментарии.
ИЗМЕНИТЬ: О, ребята. Это идеальный способ сделать это.
Прежде всего, вы должны прочитать следующее: http://www.christian-fries.de/blog/files/tag-ios.html
Я пробовал это, и он работает очень хорошо. Все, что нам нужно сделать, это создать вторую нить, отсоединенную от основной. Таким образом, у нас есть непрерывная потоковая работа навсегда. Вы также должны увидеть документы GCD на веб-сайте Apple.
Второе, что вы должны учитывать для корпоративного приложения, - это настроить его как приложение для voip, таким образом, iOS будет запускать приложение даже после перезагрузки. Это особый подход, который должен выполнять iOS для приложений voip.
Это ребята. Надеюсь, это поможет вам.