2016-01-11 3 views
-1

Можно ли на новейших ios сделать приложение для отслеживания просыпаться каждые x минут, чтобы отправить сохраненные местоположения на URL-адрес, даже если пользователь не перемещается?Пробуждение приложения из фона на временной интервал?

Запрошенные функции приложения являются:

  • App получает местоположения на основе расстояния фильтра (например:. Получить только координировать с помощью GPS, когда пользователь перемещается более чем на 10 метров

  • Приложение не допускается к отправке каждой новой позиции немедленно по адресу

  • Приложение должно хранить все новые местоположения за последние 3 минуты

  • Приложение должно отправлять сохраненные позиции (за последние 3 минуты) в течение 3 минут. ! (Даже если пользователь не сдвинулся с тех пор времени, приложение должно подключаться к URL

  • App в основном работает в фоне

Пример случай:.. Пользователь переместилась на более чем 10 метров в 9:00:11 до позиции 53.432, 13.245, в 9:01:20 до позиции 53.235, 13.435 и в 9:03:10 до позиции 54.002, 13.768. Больше никаких движений более 10 метров до 9:15:00 Итак, с 9:00:00 до 9:15:00 устройство установило 3 координаты. Заказ с сервера: Отправка всех местоположений в интервале 3 мин., Начиная с 9:00:00.

Запрошенный результат: В 9:03:00 приложение отправляет все позиции от 9:00:00 до 9:03:00: 9:00:11: 53,432, 13,245, 9:01: 20: 53,235, 13,435

В 9:06:00 приложение отправляет все позиции от 9:03:00 до 9:06:00: 9:03:10: 54.002, 13,768

В 9:09 : 00 приложение отправляет все позиции с 9:06:00 до 9:09:00: «нет новых должностей» ....

Проблема: Приложение должно пробуждаться, чтобы обрабатывать такие действия, как отправка информации на сервер. Одним из событий, которые могли бы пробудить приложение, было бы движение более 10 метров. Но поскольку пользователь не перемещается с 9:03:10 до 9:15:00, события, которые просыпают приложение, не будут. Приложение остается приостановленным и не отправит местоположение 9:03:10 до следующего движения в 9:15:00

Решение? Есть ли другие возможности, чтобы приложение просыпалось и отправляло хранимые места в 9:06:00? Могут ли приложения иметь встроенный таймер для пробуждения?

(По моему разумению приложения таймера не просыпалось, когда звуковое предупреждение следует. Вместо этого планирование локального уведомления огонь во время настороже.)

Но если можно запланировать локальные уведомления, не может ли приложение использовать другие действия, такие как «разбудить меня»?

Большое спасибо за ваше время и помощь!

+1

Добро пожаловать - какой код у вас так далеко, чтобы разбудить свой проект до? Если вы запускаете Xcode и выполняете поиск документации для многозадачности, вы можете получить доступ к API, которые доступны, если вы ищете больше документации, чем конкретная поддержка кода. Кроме того, ключом «Выполнение долгосрочных задач в фоновом режиме» ... – bmike

+0

Привет, bmike, спасибо за ваш ответ. Мы еще не разработали приложение. И я не знаю о коде, который будет использоваться. (Надеюсь, здесь было нормально публиковать, хотя я сам не разработчик.) Друг хочет использовать фильтр расстояния, чтобы разбудить приложение. Но я сомневаюсь в его оппининоне о пробуждении приложения: по его словам, есть только одна возможность гарантировать, что приложение может разбудить и отправить сохраненные местоположения: «Только если gps работает постоянно, приложение может обрабатывать действие вроде отправляя сохраненные позиции ». Это звучит странно для меня. –

ответ

0

приложение может попытаться выполнить фоновые задачи, но оно не может заставить себя оставаться на месте - ОС закроет его через пару минут, независимо от локальных обработчиков таймера или уведомлений.

Лучше всего, чтобы как только пользователь переместился более чем на 10 метров, сервер начинает отправлять push-уведомления. У вас может быть обработчик, который может разбудить приложение в фоновом режиме, и вы можете использовать этот обработчик для отправки данных обратно на сервер.

Существует множество правил относительно использования определенных фоновых режимов, поэтому в случае, если вы не встретили его раньше, ознакомьтесь с этой ссылкой.

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

+0

Большое спасибо за этот документ. К сожалению, я не могу рассчитывать на то, что пользователь переместится, потому что иногда он не слишком далеко продвигается надолго. Чтение о периодичности получения небольшого количества контента заставляет меня думать, что должно быть возможно, периодически загружать данные для моей цели. Задержка до 80 секунд для загрузки будет в порядке. Как вы думаете, создание автоматической «загрузки» нескольких байт каждые 3 минуты может заставить приложение отправлять сохраненные местоположения на сервер каждые 3 - 5 минут? –

Смежные вопросы