Являются ли фоновые задачи решением этой проблемы? - PullRequest
18 голосов
/ 03 декабря 2010

Мне нужно разработать корпоративное приложение, которое отслеживает сетевой трафик. По сути, он определяет, использует ли пользователь данные 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.

Вот и все, ребята. Я надеюсь, что это может помочь вам.

1 Ответ

2 голосов
/ 14 января 2011

У нас нет доступа к этим данным.Нет способа измерить трафик.

Приложение, которое вы видели, сделало оценку (например, 1 Мб / мин) и после applicationWillEnterForeground.затем вы вычисляете время x оценочный трафик, и мы идем.

К сожалению, нет способа измерить, так что я сделал сброс настроек трафика в настройках, а затем я воспроизводил ровно 1 минуту музыки.после нескольких повторений у меня были свои результаты.Проблема в том, что это прекрасно работает только со статическими процессами трафика, такими как аудио или видео.

надежда может помочь endo

EDIT: посмотрите ответ ниже!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...