Мне нужно разработать корпоративное приложение, которое отслеживает сетевой трафик. По сути, он определяет, использует ли пользователь данные Wi-Fi или сотовую связь, и сохраняет количество байтов, отправленных и полученных за определенный период времени.
Я видел приложение в AppStore, которое делает именно эту работу.
Обнаружение данных Wi-Fi или сотовой связи довольно просто с помощью образца доступности, предоставленного Apple.
Моя проблема заключается в том, чтобы отслеживать отправленные и полученные байты, пока приложение находится в фоновом режиме.
Поскольку это корпоративное приложение, я использовал UIBackgroundModes "voip", чтобы приложение не закрывалось.
Я также установил метод setKeepAliveTimeout, и я могу просматривать журналы каждые 10 минут, НО только в течение 10 секунд после запуска метода. Я имею в виду, setKeepAliveTimeout заставляет мое приложение запускать таймер на 10 секунд каждые 10 минут.
Я думаю, что задача в фоновом режиме или нет - лучшее решение для моей проблемы.
Буду благодарен за любые комментарии.
РЕДАКТИРОВАТЬ: Хорошо, ребята. Это идеальный способ сделать это.
Прежде всего, вы должны прочитать это:
http://www.christian -fries.de / блог / файлы / тэг-ios.html
Я попробовал это, и это работает очень хорошо.
Все, что нам нужно сделать, это создать второй поток, отделенный от основного. Таким образом, у нас есть непрерывные потоки, работающие вечно. Вы также должны увидеть документы GCD на веб-сайте Apple.
Второе, что вы должны рассмотреть для корпоративного приложения, это настроить его как приложение voip, чтобы iOS запустила ваше приложение даже после перезагрузки. Это особое поведение iOS должна поддерживать работу приложений VoIP.
Вот и все, ребята.
Я надеюсь, что это может помочь вам.