Я хочу отправить свое текущее местоположение на веб-службу php каждые 5 минут, даже если мое приложение запускается в фоновом режиме. Я пытаюсь сделать это, но он работает хорошо, когда мое приложение работает, но когда я помещаю это приложение в фоновом режиме, он прекращает отправку данных, поэтому, пожалуйста, приятель расскажите, как я могу запустить приложение в фоновом режиме.
Как я могу запустить приложение GPS в фоновом режиме?
Ответ 1
Под "бегом в фоновом режиме", вы имеете в виду, когда работаете под экраном блокировки? Если это так, вам нужно установить PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
Сообщение Запуск приложения Windows Phone под экраном блокировки Хайме Родригеса хорошо освещает тему.
Однако, если вы говорите о запуске приложения, которое продолжает работать, пока пользователь использует другие приложения на устройстве, это невозможно. В сборке Mango операционной системы вы можете создавать фоновые агенты, но они запускаются только каждые 30 минут и только в течение 15 секунд, как описано в MSDN.
На официальном форуме UserVoice для разработки Windows Phone есть запрос Предоставить агента для отслеживания маршрутов, но даже если он будет принят, это будет недоступно для некоторое время.
Ответ 2
Приложения для отслеживания - это основная часть того, что я делаю для жизни, и перспектива использования WP7, как это, является основной причиной, по которой я ее приобрел.
С точки зрения энергопотребления передача данных - это самая дорогая вещь, которую вы можете сделать, а затем тщательно с помощью GPS и акселерометров.
Чтобы создать след, который точно соответствует дорогам, вам нужна более высокая частота дискретизации. WP7 не позволит вам опробовать более одного раза в секунду. Это (чуть-чуть) достаточно быстро, чтобы отслеживать автомобиль, и при таком уровне потребляемой мощности батарея прослужит около часа, предполагая, что вы регистрируете данные на телефоне и не пытаетесь ее передать.
Вы также обнаружите, что если вы передаете для каждого образца, ваш интервал выборки будет составлять не менее 15 секунд. Запуск веб-вызова в другом потоке не поможет, потому что для завершения потребуется более одной секунды, и вы выйдете из сокетов менее чем за минуту с интервалом с интервалом в одну секунду.
Существуют решения всех этих проблем. Например, в автомобиле вы можете подключиться к автомобилю и работать горячим. Вы можете пакетно и ломать свои данные в фоновом потоке.
Это, однако, только основные проблемы, с которыми сталкивается каждый дизайнер трекера. Более интересными являются вопросы близости в пространстве и времени, измерение отклонения от маршрута, способы определения маршрутов и геозонностей в зависимости от времени, как связать их с именованными наборами для целей оценки правил и как связать правила с именованными наборами маршрутов и геообъектов.
И затем происходит периодическая кластеризация, которая вводит все календарные ночные кошмары, которые слишком велики для вашего среднего разработчика настольного программного обеспечения. Чтобы применить ограничение скорости для школьной зоны, вам необходимо знать часовой пояс, летнее время, два старта и два времени остановки, а также даты начала и окончания школьных каникул в этом регионе.
Если вы просто делаете это для удовольствия или как своего рода пешеходная трасса, то пятиминутный интервал будет налагать гораздо более мягкие требования к мощности, чем одна секунда выборки, но я все же предлагаю пакетный и взрыв, потому что это означает, что вы можете отслеживать местоположения, которые 't есть комм.